2017-03-04 28 views
1

我想用pygame在屏幕上繪製幾圈大半徑的圓。我想定義一個名爲surface1的表面,比我的顯示錶面(screen)大,並在實際尺寸中繪製我的圓。一旦我這樣做,我打算重新調整surface1並將其顯示在screen上。這裏是我的代碼:Pygame - 是否可以在一個表面創建所有內容並將其縮小以顯示錶面?

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

@Samamprasad K R是的,它可以在一個較小的圓周上工作,但由於大面積和變換,幀頻會非常低。你爲什麼要這樣做? – skrx

+1

這是爲了解決工程問題,實際尺寸很大。我試圖避免縮小所有因素。但那就是我現在正在做的。 –

相關問題