Explorateur de courbes de Bézier

Explorez les courbes de Bézier de manière interactive. Faites glisser les points de contrôle et observez la construction de De Casteljau.

Chargement de la simulation interactive...

Aucun point de contrôle intermédiaire n'est jamais atteint 🖖

Faites glisser un point de contrôle intérieur très loin : la courbe s'incline vers lui mais n'y parvient jamais. Le poids de Bernstein d'un point intérieur a un plafond strict — sur les préréglages cubiques il vaut b₁,₃(t) = 3t(1−t)², qui culmine en t = 1/3 à seulement 4/9. Les extrémités portent en revanche un poids exactement égal à 1 en t = 0 et t = 1, et c'est pourquoi la courbe commence et se termine précisément sur elles. Quand le degré augmente, l'influence intérieure diminue encore : sur le préréglage de degré 5, les plafonds sont 0,410 et 0,346. Voilà pourquoi les graphistes enchaînent de courtes cubiques au lieu d'ajuster une seule courbe de degré élevé : plus vous ajoutez de points de contrôle, moins chacun peut agir.

Couper les angles par moyennes répétées 🖖

Derrière la courbe lisse se cache une seule opération toute simple, répétée encore et encore : la moyenne en ligne droite de deux points. L'algorithme de De Casteljau prend vos points de contrôle, trouve le point situé à une fraction t de chaque segment de liaison, puis recommence avec les nouveaux points jusqu'à ce qu'un seul subsiste — c'est B(t). Déplacez le curseur et regardez tout l'échafaudage se réduire à un point qui trace la courbe.

Nommée d'après le mauvais inventeur 🖖

L'algorithme animé par cet outil a été créé par Paul de Casteljau chez Citroën en 1959, trois ans avant que Pierre Bézier ne publie des travaux similaires chez le constructeur rival Renault. Citroën a traité les recherches de De Casteljau comme un secret industriel et ne les a pas publiées ; les courbes ont donc pris le nom de Bézier. Les deux ingénieurs façonnaient la tôle des voitures : les mathématiques des polices et de l'animation sont nées à l'usine.

COURBES DE BÉZIER — CE QUE LES POINTS DE CONTRÔLE PEUVENT, ET NE PEUVENT PAS, IMPOSER

Quel cas de Bézier dessinez-vous ?

Le nombre de points de contrôle décide des formes qui sont ne serait-ce qu'atteignables ; leur emplacement décide de celle que vous obtenez. Trois points ne peuvent tracer qu'un morceau de parabole : pas de S, pas de rebroussement, pas de boucle, quoi que vous fassiez du point du milieu. Ajoutez-en un quatrième et les trois deviennent possibles, séparés par des frontières que l'on peut calculer. Les trois cubiques ci-dessous partagent P0, P1 et P2 et ne diffèrent que par P3, précisément le point qui fait passer une cubique de la boucle au rebroussement puis au S ordinaire.

Quadratique — trois points, et c'est toujours une parabole κ ≠ 0 ∀t
Cubique avec inflexion — le S qu'une quadratique ne peut pas faire κ(0.5) = 0
Rebroussement — là où la courbe s'arrête net et repart en arrière B′(0.5) = (0, 0)
Boucle — un point, visité deux fois B(0.211) = B(0.789)
Degré 5 — plus de points, moins de contrôle min |B − P₃| = 134

01

Quadratique — trois points, et c'est toujours une parabole

Ce que vous savez: Trois points de contrôle, degré 2. La courbe quitte P0 en visant droit sur P1 et arrive en P2 en venant droit de P1 ; cet unique point intermédiaire est tout le levier dont vous disposez.

Comment le reconnaître: κ ≠ 0 ∀t

Exemple résolu: P0 (50, 250), P1 (250, 30), P2 (450, 250) → B(0,50) = (250, 140), exactement à mi-chemin entre P1 et le milieu de la corde (250, 250). La courbe ne s'approche jamais de P1 à moins de 110 px.

Ouvrir ce cas: Quadratique
Quadratique — trois points, et c'est toujours une parabole. Le sommet tombe en (250, 140) — à mi-chemin entre le point de contrôle et la corde. Trois points de contrôle, degré 2. La courbe quitte P0 en visant droit sur P1 et arrive en P2 en venant droit de P1 ; cet unique point intermédiaire est tout le levier dont vous disposez.
Le sommet tombe en (250, 140) — à mi-chemin entre le point de contrôle et la corde.

02

Cubique avec inflexion — le S qu'une quadratique ne peut pas faire

Ce que vous savez: Quatre points de contrôle, degré 3, avec P1 qui tire au-dessus de la corde et P2 en dessous. La courbe se plie d'abord d'un côté, puis de l'autre.

Comment le reconnaître: κ(0.5) = 0

Exemple résolu: P0 (50, 250), P1 (150, 50), P2 (350, 250), P3 (450, 50) → le produit B′ × B″ descend en ligne droite de positif en t = 0 à négatif en t = 1, en passant par zéro à t = 0,50, de sorte que l'unique inflexion se trouve exactement en B(0,50) = (250, 150).

Ouvrir ce cas: S cubique
Cubique avec inflexion — le S qu'une quadratique ne peut pas faire. La courbure passe par zéro à t = 0,50 : le pli s'inverse en (250, 150). Quatre points de contrôle, degré 3, avec P1 qui tire au-dessus de la corde et P2 en dessous. La courbe se plie d'abord d'un côté, puis de l'autre.
La courbure passe par zéro à t = 0,50 : le pli s'inverse en (250, 150).

03

Rebroussement — là où la courbe s'arrête net et repart en arrière

Ce que vous savez: Quatre points, avec P1 et P2 jetés l'un par-dessus l'autre de telle façon que les deux composantes de la vitesse s'épuisent au même instant. Degré 3.

Comment le reconnaître: B′(0.5) = (0, 0)

Exemple résolu: P0 (100, 200), P1 (400, 50), P2 (100, 50), P3 (400, 200) → x′(t) = 900(1 − 2t)² et y′(t) = 450(2t − 1), donc B′(0,50) = (0, 0). La courbe atteint (250, 87,5), s'arrête, et repart dans la direction d'où elle venait.

Ouvrir ce cas: Rebroussement
Rebroussement — là où la courbe s'arrête net et repart en arrière. B′(0,5) = (0, 0) : le point qui trace s'arrête en (250, 87,5) et repart en arrière. Quatre points, avec P1 et P2 jetés l'un par-dessus l'autre de telle façon que les deux composantes de la vitesse s'épuisent au même instant. Degré 3.
B′(0,5) = (0, 0) : le point qui trace s'arrête en (250, 87,5) et repart en arrière.

04

Boucle — un point, visité deux fois

Ce que vous savez: Exactement les P0, P1 et P2 du rebroussement, mais P3 ramené de x = 400 à x = 280, si bien que le polygone de contrôle se croise plus franchement. Degré 3.

Comment le reconnaître: B(0.211) = B(0.789)

Exemple résolu: P0 (100, 200), P1 (400, 50), P2 (100, 50), P3 (280, 200) → B(t) = B(1 − t) pour t = ½ ∓ √3/6, c'est-à-dire t ≈ 0,211 et t ≈ 0,789, qui aboutissent tous deux exactement en (220, 125).

Ouvrir ce cas: Boucle cubique
Boucle — un point, visité deux fois. Deux paramètres, un point : t ≈ 0,211 et t ≈ 0,789 donnent tous deux (220, 125). Exactement les P0, P1 et P2 du rebroussement, mais P3 ramené de x = 400 à x = 280, si bien que le polygone de contrôle se croise plus franchement. Degré 3.
Deux paramètres, un point : t ≈ 0,211 et t ≈ 0,789 donnent tous deux (220, 125).

05

Degré 5 — plus de points, moins de contrôle

Ce que vous savez: Six points de contrôle, degré 5. Chacun a un poids non nul pour toute valeur de t, si bien que bouger n'importe lequel modifie la courbe entière.

Comment le reconnaître: min |B − P₃| = 134

Exemple résolu: Les six points s'étendent en y de 20 à 280, mais la courbe ne couvre que y de 150 à 250, et elle ne s'approche jamais de P3 (300, 20) à moins de 134 px. À t = 0,5 les poids valent 0,031, 0,156, 0,313, 0,313, 0,156, 0,031 — chaque point compte, aucun ne commande.

Ouvrir ce cas: Degré 5
Degré 5 — plus de points, moins de contrôle. La courbe ne monte jamais au-dessus de y = 150 alors que ses propres points de contrôle atteignent y = 20. Six points de contrôle, degré 5. Chacun a un poids non nul pour toute valeur de t, si bien que bouger n'importe lequel modifie la courbe entière.
La courbe ne monte jamais au-dessus de y = 150 alors que ses propres points de contrôle atteignent y = 20.
Références (3)
  • The Bernstein basis and its weight bounds: Farouki, R. T. (2012). "The Bernstein polynomial basis: A centennial retrospective." Computer Aided Geometric Design 29(6), 379–419.
  • The algorithm the tool animates, and the naming: Farin, G. Curves and Surfaces for CAGD: A Practical Guide, 5th ed. Morgan Kaufmann, 2002 — de Casteljau’s algorithm, the convex-hull property and endpoint interpolation. ISBN 978-1-55860-737-8.
  • De Casteljau’s own account of the unpublished Citroën work: de Casteljau, P. (1999). "De Casteljau’s autobiography: My time at Citroën." Computer Aided Geometric Design 16(7), 583–586. No DOI is linked here because the record could not be resolved to one.

Problèmes entièrement résolus

  1. Le point de la courbe en t = 0,50 qui cesse de se courber dans un sens 6 étapes

    La cubique sur la page a pour points de contrôle P0 = (50, 250), P1 = (150, 50), P2 = (350, 250), P3 = (450, 50), dans un cadre de 500 × 300 avec y mesuré vers le bas. Le panneau affiche le point de la courbe à t = 0,50. Démontrez que ce point est le seul endroit où la courbe cesse de s'incurver dans un sens et commence à s'incurver dans l'autre.

    1. À t = 1/2, les quatre poids de Bernstein valent 1/8, 3/8, 3/8, 1/8, de sorte que les deux points intérieurs comptent trois fois plus que les extrémités. C'est là toute l'arithmétique : x = (50 + 450 + 1050 + 450)/8 et y = (250 + 150 + 750 + 50)/8.

    2. La courbure correspond à la dérivée seconde, et dériver deux fois une cubique laisse une expression linéaire en t. Chacun des deux vecteurs à partir desquels elle est construite est une différence seconde de trois points de contrôle consécutifs.

    3. Calculez-les. Ils se révèlent égaux et opposés — un fait concernant le polygone de contrôle, disponible avant même d'avoir tracé la moindre courbe.

    4. Ainsi, la dérivée seconde est une direction fixe, (100, 400), multipliée par 1 − 2t. Ses deux composantes atteignent 0 à t = 1/2, et pour aucun autre t dans l'intervalle.

    5. Une accélération nulle ne suffit pas à créer une inflexion ; une courbe qui s'arrête net en présente une aussi. Il faut donc vérifier la vitesse. Elle vaut (450, 0) : horizontale, et catégoriquement non nulle, de sorte que le point traverse le méplat plutôt que de faire demi-tour sur place.

    6. La courbure a le signe de x′y″ − y′x″. En développant, la parenthèse se simplifie — les deux termes dépendants de t s'annulent pour donner une constante égale à 3 — ce qui laisse un numérateur exactement proportionnel à 1 − 2t. Une quantité linéaire en t s'annule une seule fois, de sorte que cette cubique possède exactement une inflexion, située à t = 1/2.

    Réponse

    (250,0, 150,0) est le seul point d'inflexion de la courbe. Sa position n'est pas un hasard dû à ces nombres particuliers. La condition qui a annulé la dérivée seconde, P3 − P2 = P1 − P0, se réécrit P0 + P3 = P1 + P2 = (500, 300) — et B(t) + B(1 − t) est elle-même une Bézier cubique, construite sur les points de contrôle inversés et additionnés P0+P3, P1+P2, P2+P1, P3+P0. Tous les quatre représentent le même point, de sorte que cette somme est la constante (500, 300) pour tout t. Vérifiez-le à un quart de tour : B(0,25) = (140,625, 162,5) et B(0,75) = (359,375, 137,5) s'additionnent pour donner exactement cela. La courbe présente une symétrie centrale par rapport à (250,0, 150,0), et une forme qui paraît identique après un demi-tour autour d'un point ne peut s'incurver ni d'un côté ni de l'autre en ce point. Le polygone de contrôle en pointillé contient à lui seul tout l'argument : son premier et son dernier segment forment le même vecteur, (100, −200), le point d'inflexion se situe donc au milieu avant même que la courbe n'existe.

  2. Un coin tracé en B(0,50) par des polynômes dérivables 6 étapes

    L'état à point de rebroussement utilise P0 = (100, 200), P1 = (400, 50), P2 = (100, 50), P3 = (400, 200), et le panneau affiche B(0,50) = (250,0, 87,5). Les deux coordonnées sont des polynômes en t, le mouvement est donc indéfiniment dérivable. Démontrez que le tracé présente malgré tout un point anguleux à cet endroit.

    1. Les poids sont les mêmes que pour n'importe quelle cubique au paramètre médian : 1/8, 3/8, 3/8, 1/8. x = (100 + 1200 + 300 + 400)/8 et y = (200 + 150 + 150 + 200)/8.

    2. La dérivée d'une courbe de Bézier cubique est construite à partir des trois côtés du polygone de contrôle, pondérés par la base de Bernstein quadratique. Dériver ne nécessite jamais les points eux-mêmes, seulement les déplacements entre eux.

    3. Ici, le côté central va en sens inverse. P1 − P0 et P3 − P2 poussent tous deux vers la droite, tandis que P2 − P1 pousse de 300 vers la gauche — et sa composante verticale vaut 0, elle ne peut donc rien annuler selon y.

    4. En regroupant les composantes, chacune se réduit à un terme unique. La vitesse horizontale est un carré parfait, elle ne devient donc jamais négative ; la vitesse verticale est linéaire et change de signe. Elles s'annulent simultanément à t = 1/2, ce qui correspond à un arrêt complet du point traceur.

    5. Un arrêt ne produit pas automatiquement un point anguleux — la direction pourrait subsister après la pause. En prenant le rapport, il tend vers 0 des deux côtés, la tangente est donc verticale en arrivant et verticale en repartant, avec y′ qui change de signe à ce passage. La direction bascule de 180°.

    6. Tout comme pour la dérivée seconde, l'arrêt est une propriété du polygone. B′(1/2) est égal aux trois quarts de (P2 + P3) − (P0 + P1), ce qui s'annule exactement lorsque le milieu du premier côté et le milieu du dernier côté coïncident. Tous deux valent (250, 125).

    Réponse

    Le point traceur s'arrête net en (250,0, 87,5) et en repart dans la direction opposée. Rien dans la paramétrisation n'est irrégulier — x(t) et y(t) sont des cubiques, indéfiniment dérivables — et le tracé comporte pourtant un point anguleux marqué, c'est pourquoi la continuité d'une courbe s'évalue à deux niveaux : C¹ demande si la vitesse est continue, G¹ demande si la direction l'est, et une vitesse nulle satisfait le premier critère tout en détruisant le second. Cela a aussi une conséquence mesurable. Comme y′ = 450(2t − 1) est négatif avant l'arrêt et positif après, y = 87,5 est la plus petite valeur que la courbe atteigne jamais, le point de rebroussement est donc le point le plus haut à l'écran et la courbe tout entière reste piégée sous lui. P1 et P2 se trouvent à y = 50 ; la courbe s'en approche à 37,5 près sans pouvoir aller plus près, ce qui est le prix à payer quand on tire sur une cubique avec seulement deux poignées intérieures.

Exemples de problèmes

  • Quadratique - Quadratique : degré 2, sommet en B(0,50) = (250, 140)
  • S cubique - S cubique : inflexion en B(0,50) = (250, 150)
  • Rebroussement - Rebroussement : la tangente s'annule en B(0,50) = (250, 87,5)
  • Boucle cubique - Boucle cubique : une courbe de degré 3 qui se croise
  • Degré 5 - Degré 5 à partir de 6 points de contrôle