MagPI 5 Page 30

De Le French MagPi
Aller à : Navigation, rechercher

(début de code)

  • # DÉMO CERCLE
  • # Par Jaseman 22 août 2012
  • import os, random, pygame; from pygame.locals import *
  • from math import sin, cos, pi
  • pygame.init(); clock = pygame.time.Clock()
  • os.environ['SDL_VIDEO_WINDOW_POS'] = 'center'
  • pygame.display.set_caption("Démo Cercle")
  • screen=pygame.display.set_mode((800,600),0,32)
  • bk=pygame.Surface((800,600)); bk.fill((0,64,0))
  • dot=pygame.Surface((4,4)); dot.set_colorkey([0,0,0])
  • pygame.draw.circle(dot,(255,255,255),(2,2),2,0)
  • smlradius = 60; bigradius = 120; points = 90
  • # Tableaux pour stocker les points X et Y du petit et du grand cercle
  • smcx = []; smcy = []; bgcx = []; bgcy = []
  • # Calcule les X et Y des points et met les valeurs dans le tableau
  • angleStep = pi *2 / points
  • for a in range(0,points):
  • smcx.append(sin(a * angleStep)*smlradius)
  • smcy.append(cos(a * angleStep)*smlradius)
  • bgcx.append(sin(a * angleStep)*bigradius)
  • bgcy.append(cos(a * angleStep)*bigradius)
  • a=0; b=0 # Les points a & b seront les points mouvants des cercles
  • c=0; d=0 # Points pour les courbes sinus et cosinus
  • cx=800/2; cy=600/2 # Centre de l'écran
  • r=random.randint; pdl=pygame.draw.line # Abréviations pour les commandes
  • run = 1
  • while run == 1:
  • screen.blit(bk,(0,0)) # Dessine l'arrière-plan
  • screen.blit(dot,(cx2,cy2)) # Point central
  • # Dessine le cercle
  • screen.blit(dot, (bgcx[a]+cx2,bgcy[a]+cy2))
  • screen.blit(dot, (smcx[a]+cx2,smcy[a]+cy2))
  • screen.blit(dot, (bgcx[b]+cx2,bgcy[b]+cy2))
  • screen.blit(dot, (smcx[b]+cx2,smcy[b]+cy2))
  • rcol=r(0,255); gcol=r(0,255); bcol=r(0,255)
  • pdl(bk,[rcol,gcol,bcol],(bgcx[a]+cx2,bgcy[a]+cy2),(smcx[a]+cx2,smcy[a]+cy2))
  • pdl(bk,[rcol,gcol,bcol],(bgcx[b]+cx2,bgcy[b]+cy2),(smcx[b]+cx2,smcy[b]+cy2))
  • pdl(bk,[rcol,gcol,bcol],(smcx[a]+cx2,smcy[a]+cy2),(smcx[b]+cx2,smcy[b]+cy2))
  • # Points avec contrainte (X ou Y fixe)
  • screen.blit(dot, (bgcx[a]+cx2,cybigradius14))
  • screen.blit(dot, (bgcx[b]+cx2,cy+bigradius+10))
  • screen.blit(dot, (smcx[a]+cx2,cybigradius34))
  • screen.blit(dot, (smcx[b]+cx2,cy+bigradius+30))
  • screen.blit(dot, (cxbigradius14,bgcy[a]+cy2))
  • screen.blit(dot, (cxbigradius34,smcy[a]+cy2))
  • screen.blit(dot, (cx+bigradius+14,bgcy[b]+cy2))
  • screen.blit(dot, (cx+bigradius+34,smcy[b]+cy2))
  • pdl(bk,[rcol,gcol,bcol],(bgcx[a]+cx2,cybigradius14),(smcx[a]+cx2,cybigradius34))

(fin de code)

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils