TD 6 : courbes de subdivision

Résumé du TD

Nous reprenons le TD sur les courbes, pour nous intéresser aux courbes de subdivision.

Instructions

Repartez du programme créé pour le TD 2 (mais recopiez-le dans un autre dossier). Il contient déjà une fonction pour entrer des points par la souris (stockés dans le tableau controlPoints).

Implémentation des Courbes de subdivision

Les courbes de subdivision sont plus difficiles à implémenter que les courbes de Bézier ou les B-splines, parce qu'elles n'ont pas d'équation précise. Elles sont définies par raffinement successifs : à chaque étape, on remplace les n points par 2n-1 nouveaux points, et on arrête la subdivision quand la courbe est suffisamment lisse.

Dans le cadre du TD, comme il n'est pas facile de décider l'arrêt de la subdivision, je vous suggère de faire simplement 4 étapes de raffinement:

Schéma de subdivision

Vous pouvez implémenter n'importe quel schéma de subdivision vu en cours. Celui-ci est assez efficace et intéressant :

(c'est le même schéma de subdivision que proposé pour le TD2, mais réorganisé).

Variations du schéma de subdivision

En fait, ce schéma de subdivision est paramétrable. On peut aussi l'exprimer comme :
avec alpha = 1/8.

Reprenez le code réalisé, et remplacéez 1/8 par une variable alpha, que vous pouvez ajuster avec les touches du clavier.