2017-03-04 1 views
1

Je souhaite dessiner quelques cercles de grand rayon sur l'écran en utilisant pygame. Je voudrais définir une surface appelée surface1 plus grande que ma surface d'affichage (screen) et tracer mes cercles dans la dimension réelle. Une fois que je fais cela, je prévois de remettre à l'échelle surface1 et l'afficher sur screen. Voici mon code:Pygame - Est-il possible de tout créer sur une surface et de l'agrandir pour afficher la surface?

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 

Pour une raison quelconque, je ne peux pas voir le cercle. Cependant, la couleur de la fenêtre affichée change en fonction de ce que j'ai défini à l'intérieur surface1. Pourquoi cela se comporte-t-il de cette façon? Toute aide serait appréciée. Merci d'avance.

Répondre

1

Le cercle est plus grand que la grande surface. L'argument pos est le centre du cercle et le rayon est supérieur à la moitié de la largeur et de la hauteur. Essayez de dessiner quelque chose de plus petit.

De plus, la manipulation d'une surface aussi importante entraînera de très mauvaises performances.

+0

Oui, je n'ai pas remarqué ça. Merci. Mais disons que le cercle a un rayon de 1500. Est-ce la bonne logique? –

+0

@Syamprasad K R oui cela fonctionnera avec un plus petit cercle, mais à cause de la grande surface et de la transformée la cadence sera très basse. Pourquoi faites-vous réellement cela? – skrx

+1

Ceci est pour résoudre un problème d'ingénierie et les dimensions réelles sont grandes. J'essaie d'éviter de réduire tous les facteurs. Mais c'est ce que je fais maintenant. –