mardi 25 février 2020

BlockScad : les courbes de Bézier

Les courbes de Bézier ont été décrites par Pierre Bézier dans les années 1950 pour dessiner des pièces d’automobiles. Elles sont aussi utilisées pour lisser les lettres des polices de caractères et sont présentes dans la plupart des logiciels de dessin.


Les courbes, car c’est une famille de courbes, se calculent suivant une même formule à partir de points. La courbe de Bézier d’ordre 3 nécessite de définir 4 points (et ainsi de suite). La courbe commence avec le premier point (on va l’appeler P0) et se termine avec le dernier point (P3).

Une fois P0 et P3 définis, on peut changer la forme de la courbe en simplement déplaçant les points P1 et P2.

La courbe ne passe pas par les points intermédiaires : il faut plus les voir comme des aimants qui attirent la courbe (façon de parler).

Le block 2D Beziers3

La courbe de Bézier d’ordre 3 est la formule suivante :
P0*(1-t)3 + 3*P1*t*(1-t)2 + 3*P2*t2*(1-t) + P3*t3  et cela pour la variable (t) qui varie entre 0 et 1.

Cette formule doit se calculer pour toutes les abscisses des Points, c’est à dire P0x, P1x, P2x, P3x et aussi pour les ordonnées de ces points, c’est à dire P0y, P1y, P2y, P3y.


C’est un bloc qui dessine la courbe une fois après avoir choisi les points. Un paramètre « DISPLAY » permet de dessiner le point P1 (un petit cercle) et le point P2 (un carré) pour faciliter le déplacement des points pour avoir la courbe définitive.

Une fois la courbe désirée, il suffit de mettre zéro dans le paramètre display et la courbe est seule.



Le Bloc 2D Beziers4

Nous allons aussi définir la courbe de Bézier d’ordre 4, c’est à dire avec 5 points car elle permet des courbes avec des formes un peu plus élaborées.
La courbe de Bézier d’ordre 4 est la formule suivante :

P0*(1-t)4 + 4*P1*t*(1-t)3 + 6*P2*t2*(1-t)2 + 4*P3*t3*(1-t) + P4*t4 et cela pour la variable (t) qui varie entre 0 et 1.


Le Bloc 2D Beziers5

Nous allons aussi définir la courbe de Bézier d’ordre 5, c’est à dire avec 6 points.
La courbe de Bézier d’ordre 5 est la formule suivante :

P0*(1-t)5 + 5*P1*t*(1-t)4 + 10*P2*t2*(1-t)3 + 10*P3*t3*(1-t)2 + 5*P4*t4*(1-t) + P5*t5  et cela pour la variable (t) qui varie entre 0 et 1.


Un profil d’aile


Assez simplement, en utilisant 2D Bezier5, on peut réaliser un profil d’aile et en faire une aile avec un LINEAR EXTRUDE.


Le triangle de Pascal

Comme nous sommes à peu près sûr qu’Edwin va nous poser la question, autant l’aborder maintenant. Mais pourquoi s’arrêter au block Bézier5 ? et si on veut un block Bézier 6, 7, 8, ….

Le principe est toujours le même : il faut réaliser la formule d’un polynôme de la forme version 8) :
(1-t) ∧8 + t*(1-t)∧7 + t∧2*(1-t)∧6 + t∧3*(1-t)∧5 + t∧4*(1-t)∧4 + t∧5*(1-t)∧3 + t∧6*(1-t)∧2 + t∧5*(1-t) + t∧8 : quand la puissance de (1-t) diminue celle de (t) augmente.


Mais il faut rajouter des coefficients (des nombres constants) devant chaque des multiplications. Les coefficients sont donnés par le triangle de Pascal.



Vous avez compris le principe ? Tant mieux !

Voici donc la formule en y ajoutant les coefficients :

1*(1-t) ∧8 + 8*t*(1-t)∧7 + 28*t∧2*(1-t)∧6 + 56*t∧3*(1-t)∧5 + 70*t∧4*(1-t)∧4 + 56*t∧5*(1-t)∧3 + 28*t∧6*(1-t)∧2 + 7*t∧5*(1-t) + 1*t∧8

Aucun commentaire: