Disegna per punti una circonferenza calcolando le coordinate x,y
corrispondenti ad ogni angolo da 0°
a 360°
def x(t): return math.cos(t)
def y(t): return math.sin(t)

Modificando le due funzioni che legano le coordinate all’angolo si ottengono le diverse figure.
Alcuni parametri successivi permettono di adattare la figura alla finestra o di migliorarne l’aspetto
- RAGGIO, il fattore di scala per mantenere il grafico nella finestra
- GIRI. il numero di giri intorno all’origine
- …
import math # cos(), sin(), radians(), ...
import pygame
def xt(t): return math.cos(t)
def yt(t): return math.sin(t)
TITOLO ="Equazioni parametriche: cerchio"
DIM =800
RAGGIO =0.4*DIM # Fattore di scala
GIRI =1 # Giri completi
dAngolo=1 # Angolo tra due punti notevoli
FRAME =60
raggio1=6
raggio2=4
COLOR1 =(32, 0, 64)
COLOR2 =(64, 0,128)
WIDTH =DIM # Larghezza
HEIGHT =DIM # Altezza
W2 =WIDTH/2
H2 =HEIGHT/2
centro =(W2, H2) # Centro dello schermo
NUMERO =360*GIRI
PUNTI =[] # Sequenza dei punti notevoli
pygame.init()
screen=pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(TITOLO)
clock=pygame.time.Clock()
angolo=0
while angolo < NUMERO:
t=math.radians(angolo)
x=W2+RAGGIO*xt(t)
y=H2-RAGGIO*yt(t)
angolo += dAngolo
punto=(x,y)
PUNTI.append(punto)
# Disegna linea e punto
pygame.draw.aaline(screen, COLOR1, centro, punto )
pygame.draw.circle(screen, COLOR1, punto , raggio1)
pygame.display.flip()
clock.tick(FRAME)
# Ridisegna solo i punti
for punto in PUNTI:
pygame.draw.circle(screen, COLOR2, punto, raggio2)
pygame.display.flip()
input("Premi INVIO per chiudere la finestra...")
pygame.quit()
Ellisse
Le ordinate sono ridotte di un quarto

Nelle prossime pagine sarà sufficiente modificare le due funzioni e adattare RAGGIO e GIRI secondo le necessità!
Equazioni parametriche – 1






Equazioni parametriche – 2






Equazioni parametriche – 3


Curve di Lissajous


