dimanche 1 mars 2020

BlockScad : les courbes en 3 dimensions, coordonnées cartésiennes et cylindriques

Passons dans la troisième dimension : les coordonnées cartésiennes

Pour ceux qui veulent voir la quatrième dimension sans passer par la troisième, je leur conseille le lien Hipparque et si vous ne comprenez pas tout, alors bienvenue au club, nous nous sentirons moins seul.


Nous avons déjà vu des formes en volumes et pas uniquement des profils en 2D, c’est à dire en surface sur un plan. Pour les formes en 2D, seuls les abscisses (X) et les ordonnées (Y) sont utilisées. Pour passer nos formules en 3D, il va falloir jouer avec la hauteur (Z).


Sur le schéma précédent, on voit bien en bleu, l’abscisse X qui vaut 10, ensuite, l’ordonnée Y qui vaut 30 et enfin la hauteur Z qui vaut 20. Ainsi, tout point dans l’espace est connu par trois cordonnées (et aussi une origine et trois axes).

Les coordonnées cylindriques

Comme nous l’avons déjà vu, le choix des coordonnées est important. Les coordonnées cylindriques sont un mélange des coordonnées polaires (azimut, rayon) et de coordonnée cartésienne (Axe Z) appelé Hauteur. Les coordonnées cylindriques sont très pratiques pour les objets de type cylindriques, comme par exemple des tubes, des pièces d’échecs, des trucs qui y ressemblent.




Nous décomposons le block précédent : une petite sphère, un TRANSLATE du rayon pour courir le long de l’axe violet et arriver près du X, un ROTATE de l’azimut pour se placer au bout de l’axe jaune et un TRANSLATE suivant Z pour arriver à destination. Encore plus simplement, il est possible de faire le TRANSLATE en Z directement dans le premier TRANSLATE. Essayez donc !

Des Coordonnées cylindriques aux coordonnées cartésiennes

Quelles sont les formules qui permettent de passer des coordonnées cylindriques aux coordonnées cartésiennes ?

Pour un Point (RAYON, AZIMUT, HAUTEUR) nous connaissons déjà les formules pour X et Y. Celle pour Z est évidente :

q X = RAYON*COSINUS (AZIMUT)

q Y = RAYON*SINUS (AZIMUT)

q Z= HAUTEUR



Ces deux blocks sont totalement équivalents.



Aucun commentaire: