★ CODING ★ AMSLIVE ★ AMSLIVE n°17 - SYNTHESE : SAINTE THERESE QUELQU'UN ? ★ |
AMSLIVE n°17 - 3D | Coding Amslive |
J'étais parti (pas bien loin rassurez-vous) pour continuer la série d'articles sur la 3D. À l'instant précis où je me mis au travail, armé d'un crayon papier dont il faudra que je vous énu-mère les qualités, le téléphone se manifesta par d'inamicaux cris animaux. Une ancienne copine lancée dans le mannequinat (comme quoi on ne lance pas que les nains) cherchait du réconfort. Elle redoutait de se retrouver dans un catalogue des Trois Suisses (la voie de garage du mannequin) ou de sombrer dans la prostitution. Je la rassurai sur ce dernier point : « Ne t'inquiète pas, je te soutiendrai toujours ». Cet entrefaite mit en évidence l'aspect prématuré de ma démarche, bien que les deux sujets n'aient absolument rien à voir entre eux. Peut-on décemment faire virevolter un objet dans l'espace sans savoir rotation-ner une figure dans le plan ? A-t-on objectivement le droit d'exploiter des calculs dont on ne connaît pas la précision ? Comment oserait-on tracer une simple ligne en ignorant les tenants et aboutissants d'un tel acte ? LE BUT EN BLANC De toute façon, l'objectif n'était pas d'afficher de bêtes objets 3D d'une platitude propre à tuer de rire un chien errant dépressif, mais de donner les outils permettant de créer ou précalculer toutes sortes d'images, d'animations... FAIS TOURNER Cela n'aura échapé à personne, la qualité des intertitres oscille entre pauvreté humoristique lacrymogène et rare délicatesse (il dépanne bien, l'adjectif « rare », vous pouvez vérifier au JT : « Un acte d'une rare violence », « Une tempête d'une rare intensité », « Un film - russe -d'une sobriété rare »). Présentement, comment mieux introduire un paragraphe traitant de rotation écrit chez Shap ? Prenons, sans le violenter, un point M de coordonnées (x,y). On souhaite lui faire subir une gentille rotation d'angle a. Que valent les sympathiques coordonnées (x',y') du nouveau point M' ? Je vous livre la formule (contrairement aux écrivains qui formulent des livres) : x* = cos(a)*x - sin(a)*y Attention au piège sous BASIC quand on affecte les nouvelles coordonnées au mêmes variables : un fois le « nouvel x » calculé, on n'a plus accès à l'ancien x pour le calcul du nouvel y. il faut introduire une variable intermédiaire, ce qui donnera un truc du genre : 100 temp=COS(a)*x-SIN(a)*y AIDE ARMOIRE Truc mnémotechnique pour retrouver dans cette formule où sont les sinus, les cosinus, les +, les - : on peut examiner l'effet d'une rotation d'un petit angle a positif (donc dans le sens inverse des aiguilles d'une montre) sur les points P(1,0)etQ(0,1). Comme a est petit, cos(a) reste proche de 1, tandis que sin(a) est près de 0. L'abscisse de P', proche de 1, témoigne de x*cos(a) L'ordonnée de P' , posiiive, témoigne de x*sin(a) Je vous l'accorde, ce n'est pas plus évident à retenir que les formules elles-mêmes. Mais tel n'est pas le but de la mnémotechnie : il s'agit plutôt de donner une alternative destinée à confirmer la connaissance acquise par un autre moyen. J'écrirai un livre, un jour, même de nuit. LE CERCLE DES INITIES Vous me connaissez, je ne laisse jamais de formules sans au moins une petite justification, même mal formulée (houlà, je n'imaginais pas que l'utilisation prolongée de PROTEXT en noir sur fond gris provoquait cet effet). Au fait, je ne maintiens le vouvoiement collectif que par habitude, n'étant même pas certain d'avoir encore un lecteur à ce point de l'article. x = r * cos(t) Appliquer la rotation d'angle a revient à ajouter a à r. D'où x'= r * cos(t+a) Les formules de trigonométrie donnent : x = r * ( cos(t)cos(a) - sin(t)sin(a) ) En remplaçant r*cos(t) par x et r*sin(t) par y, on retrouve nos équations de départ. Mais le but était de fournir un nouveau point de vue rendant compte de toute la cohérence des mathématiques. En bref, vous pouvez passer à la suite sans avoir assimilé ce paragraphe, donné à titre indicatif. MATRICE T'AIDE Il existe une façon équivalente de noter ces calculs : Mais n'allez pas conclure que les matrices se limitent à une simple convention d'écriture. Elles représentent un outil très puissant. Illustration avec la composition de deux rotations, d'angles a et b (voir figure 1). Encore une fois, on applique les formules trigonométriques pour obtenir la matrice équivalente : Mon cher Watson, nous venons (enfin, surtout moi) de retomber sur un résultat élémentaire et donc intéressant : À votre avis, que donne une succession de rotations de centres distincts ? Et d'ailleurs, comment calculer de telles rotations, non centrées en 0 ? SANS RANCUNE À suivre dans cette rubrique : le traçage de belles lignes, un poil de 3D optimisée, la génération de paysages, etc.
|