1

次の python/pygame コードがあります。

import sys, pygame 
from array import * 
pygame.init() 

height = 600 
width = 800 

セットアップ表示ウィンドウ

DISPLAYSURFACE = pygame.display.set_mode((width, height)) 
pygame.display.set_caption('Graphics Assignment Part 1') 

ファイルを開く

file = open('F:\\school\\Graphics\\PIXA.DAT', 'r') 

ファイルをリストに読み込んで閉じる

vlist = file.readlines() 
#close file 
file.close 
#remove last value from list 
del vlist[-1] 

vlist の値をポイントに格納しますが、J を JUMP ビットに変更し、int を , で分割します

points = [list(map(int,v.split())) if v.strip().lower() != "j" else "JUMP" for v in vlist] 

vlistx、y、z 座標リストの 3 つのリストに分割するようにループを設定します

Xs,Ys,Zs= zip(*points) 
unique_Xs = [] 
[unique_Xs.append(val) for val in Xs if val != "J"] 
unique_Ys = [] 
[unique_Ys.append(val) for val in Ys if val != "U"] 
unique_Zs = [] 
[unique_Zs.append(val) for val in Zs if val != "M"] 
draw = list(zip(unique_Xs,unique_Ys)) 

画面上のポイントのリストを一連の線として描画します

drawing = pygame.draw.lines(DISPLAYSURFACE,(0,255,172),False, draw, 1) 

ディスプレイを更新して pygame を終了します

pygame.display.update() 
running = True 
while running: 
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            running = False

私は座標のリストを読み込んで、それらをx、y、z座標のリストに格納して、pygameで一連の線を描画しています。

画像は描画できますが、ポイントが -2000 ~ 2000 の範囲にあるため、全体が画面に表示されません。

Python ウィンドウで座標範囲を変更して、画像全体を 800x600 表示ウィンドウに表示するにはどうすればよいですか?

4

1 に答える 1