Arcs et courbes

Arc d'ellipse

La fonction arc() permet de dessiner un "morceau d'ellipse". La fonction arc prend 6 paramètres :

1
arc(x,y,a,b,angle_dep,angle_arr)

les 4 premiers paramètres sont les mêmes que pour la fonction ellipse().

angle_dep correspond à l'angle de départ et angle_arr correspond à l'angle d'arrivée.

AttentionUnité de mesure en radians

Attention, les angles doivent être donnés en radian, si vous désirez exprimer vos angles en degrés, il faudra utiliser la fonction "radians" :

1
angle_radian=radians(angle_degré)

Pour les angles, il faut considérer le sens horaire (et pas le sens anti-horaire comme le sens trigonométrique).

Exemple

Saisissez et testez ce code

1
def setup():
2
    size(400,400)
3
    background(255,255,255)
4
    arc(200,200,100,50,radians(45),radians(270))
5
6
def draw():
7
    pass

Exercice 8 : PacMan

Codez un programme permettant d'afficher ceci :

Indications :

  • Le jaune s'obtient en mélangeant du rouge et du vert

  • La fenêtre a une taille de 200x200

  • Le pacman a une taille de 100 pixels. Il est placé au centre de la fenêtre

Les courbes de Bésier

La dernière fonction de dessin est beaucoup plus complexe à utiliser. La fonction bezier() permet de dessiner une courbe de Bésier. Si le coeur vous en dit, vous en apprendrez plus sur les courbes de Bézier ici (je vous préviens, c'est très compliqué).

La fonction bezier() prend 8 paramètres :

1
bezier(x1,y1,x2,y2,x3,y3,x4,y4)

(x1,y1) et (x4,y4) sont les coordonnées des points situés aux 2 extrémités de la courbe de Bézier. (x2,y2) et (x3,y3) sont les coordonnées des 2 points de contrôles.

Exemple

Saisissez et testez ce code

1
def setup():
2
    size(400,300)
3
    background(255,255,255)
4
    bezier(100,100,250,50,220,230,250,120)
5
6
def draw():
7
    pass

Complément

Si vous voulez essayez de comprendre le fonctionnement de cette fonction bezier(), le plus simple est de modifier les paramètres et observer le résultat après chaque modification. Pour cela, vous pouvez cliquer sur la figure interactive pour modifier les coordonnées des extrémités et des points de contrôle.

Manipuler les courbes de Bezier