2017-03-04 2 views
1

私は、pygameを使用して画面に大きな半径の円を描きたいと思います。私は表示面(screen)よりも大きいsurface1というサーフェスを定義し、実際のディメンションにサークルをプロットしたいと思います。私がそれをしたら、surface1を再スケーリングしてscreenに表示する予定です。ここに私のコードです:Pygame - 1つのサーフェスにすべてを作成し、サーフェスを表示するためにスケールすることは可能ですか?

import pygame 
pygame.init() 
live = True 
while live: 
    surface1 = pygame.Surface((7680, 4320)) 
    screen = pygame.display.set_mode((1280, 720)) 
    # pygame.display.flip() 
    surface1.fill((255, 255, 255)) 

    pygame.draw.circle(surface1, (0, 0, 0), (3839, 2160), 4500, 10) 
    surface1 = pygame.transform.scale(surface1, (1280, 720)) 
    surface1.convert() 
    screen.blit(surface1, (0, 0)) 
    pygame.display.update() 


    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      live = False 

私は円を見ることができません。しかし、表示されるウィンドウの色は、surface1の中に設定したものに応じて変化します。なぜこのように行動しているのですか?どんな助けもありがとう。前もって感謝します。

答えて

1

円は大きな表面よりも大きいです。 pos引数は円の中心で、半径は幅と高さの両方の半分よりも大きくなります。小さなものを描くようにしてください。

また、このような大きな表面を操作すると、パフォーマンスが非常に悪くなります。

+0

ええ、私はそれに気付かなかった。ありがとう。しかし、円の半径が1500であるとします。これは正しいロジックですか? –

+0

@Syamprasad K Rはい、それは小さい円で動作しますが、大きなサーフェスとトランスフォームのためにフレームレートは非常に低くなります。なぜあなたはそれを実際にやっているのですか? – skrx

+1

これは工学上の問題を解決するためであり、実際の寸法は大きくなっています。私はすべての要因を縮小することを避けようとしています。しかし、それは私が今やっていることです。 –

関連する問題