Trace (lieu progressif)

trace(P) accumule les positions du point P au fil des interactions. Contrairement a lieu() qui calcule le locus complet analytiquement, trace() construit la courbe progressivement — et fonctionne avec n'importe quel point, meme libre.

Dessin libre

1. Main levee

Deplacez le point A (rouge) librement — la trace dessine votre mouvement. Impossible avec lieu() qui exige un point_sur.

-6-4-2246-4-224A
Code DSL
A = point(0, 0, couleur="rouge")
T = trace(A, couleur="violet")

Courbes par slider

2. Spirale d'Archimede

Glissez le slider t lentement de 0 a 1080. Le point C s'eloigne en tournant : la spirale se deroule sous vos yeux. Le rapport d'homothetie r = t/360 croit avec l'angle.

-10-8-6-4-2246810-8-6-4-22468OABC
t 0
Code DSL
O = point(0, 0, couleur="bleu")
t = slider(min=0, max=1080, valeur=0, pas=2)
A = point(1, 0)
B = rotation(A, centre=O, angle=t)
r = t / 360
C = homothetie(B, centre=O, rapport=r, couleur="orange")
T = trace(C, couleur="violet")

3. Epicycloide

Le point B tourne autour de A qui tourne autour de O, a des vitesses differentes (rapport -3). Glissez t pour dessiner l'epicycloide. Poussez jusqu'a 1080 pour voir le motif complet.

-10-8-6-4-2246810-8-6-4-22468OPAQB0B
t 0
Code DSL
O = point(0, 0, couleur="bleu")
t = slider(min=0, max=1080, valeur=0, pas=3)
P = point(4, 0)
A = rotation(P, centre=O, angle=t, couleur="gris")
Q = point(5, 0)
B0 = rotation(Q, centre=O, angle=t, couleur="gris")
k = -3 * t
B = rotation(B0, centre=A, angle=k, couleur="orange")
segment(A, B, couleur="gris")
T = trace(B, couleur="violet")

Rosace et exploration

4. Rosace progressive

Glissez t pour dessiner la rosace petale par petale. Changez n (nombre de petales) et rebalayez t pour voir une rosace differente se construire sur la precedente.

-10-8-6-4-2246810-8-6-4-22468OABC
n 3
t 0
Code DSL
O = point(0, 0, couleur="bleu")
c = cercle(O, rayon=4, couleur="gris")
n = slider(min=2, max=7, valeur=3, pas=1)
t = slider(min=0, max=360, valeur=0, pas=1)
A = point(4, 0)
B = rotation(A, centre=O, angle=t)
theta = angle_polaire(O, B)
k = cos(n * theta)
C = homothetie(B, centre=O, rapport=k, couleur="orange")
T = trace(C, couleur="violet")

5. Exploration 2 parametres

Deux sliders : angle a et rayon r. Balayez a a rayon fixe (arc de cercle), puis changez r et rebalayez (nouvel arc). La trace montre votre parcours dans l'espace des parametres — impossible avec lieu() qui est 1D.

-10-8-6-4-2246810-8-6-4-22468OABC
a 0
r 3.0
Code DSL
O = point(0, 0, couleur="bleu")
a = slider(min=0, max=360, valeur=0, pas=5)
r = slider(min=1, max=5, valeur=3, pas=0.2)
A = point(1, 0)
B = rotation(A, centre=O, angle=a)
C = homothetie(B, centre=O, rapport=r, couleur="orange")
T = trace(C, couleur="violet")

Comparaison lieu / trace

6. lieu() (cyan) vs trace() (violet)

Le lieu (cyan) affiche l'ellipse complete instantanement. La trace (violet) se construit au fur et a mesure que vous deplacez A sur le cercle. Deplacez P (vert) : le lieu se recalcule, mais la trace garde la memoire des anciennes positions.

-6-4-2246-4-224LOAPM
Code DSL
O = point(0, 0, couleur="bleu")
c = cercle(O, rayon=3, couleur="bleu")
A = point_sur(c, 0, couleur="rouge")
P = point(5, 0, couleur="vert")
M = milieu(A, P, couleur="orange")
L = lieu(M, A, couleur="cyan")
T = trace(M, couleur="violet")