Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
back2root:programmation:3d-theories-et-mathematiques-part-1 [2021/08/04 19:56] – [Conclusions temporaires] frater | back2root:programmation:3d-theories-et-mathematiques-part-1 [2024/06/28 15:33] (Version actuelle) – frater | ||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
Malheureusement, | Malheureusement, | ||
- | |||
- | ===== Système de références ===== | ||
- | |||
- | Tout est une question de références, | ||
- | |||
- | ==== Le système cartésien ==== | ||
- | |||
- | Sans doute le plus simple a comprendre car le plus proche de notre mode « mathématique ». | ||
- | |||
- | Une coordonnée est exprimée « simplement » avec avec trois coordonnées : x, y, z | ||
=== Radian vs Degré === | === Radian vs Degré === | ||
Ligne 31: | Ligne 21: | ||
pourtant, il est impératif d' | pourtant, il est impératif d' | ||
- | < | + | <WRAP round box>< |
Donc 1 radian vaut +/- 57.2958 degré d' | Donc 1 radian vaut +/- 57.2958 degré d' | ||
- | < | + | <WRAP round box>< |
Les formules de conversion sont donc les suivantes: | Les formules de conversion sont donc les suivantes: | ||
Ligne 41: | Ligne 31: | ||
== degré -> radian == | == degré -> radian == | ||
- | < | + | <WRAP round box> |
<m 14>x radian = angle * (eta/ | <m 14>x radian = angle * (eta/ | ||
</ | </ | ||
Ligne 48: | Ligne 38: | ||
== radian -> degré == | == radian -> degré == | ||
- | < | + | <WRAP round box> |
<m 14>x degre = rad * (180/ | <m 14>x degre = rad * (180/ | ||
</ | </ | ||
- | === le système sphérique === | + | ===== Système de références ===== |
+ | |||
+ | Tout est une question de références, | ||
+ | |||
+ | ==== Le système cartésien ==== | ||
+ | |||
+ | Sans doute le plus simple a comprendre car le plus proche de notre mode « mathématique ». | ||
+ | |||
+ | {{back2root: | ||
+ | |||
+ | Une coordonnée est exprimée « simplement » avec avec trois coordonnées : x, y, z | ||
+ | |||
+ | ==== le système sphérique | ||
C’est le système qui est utilisé pour la géolocalisation ou la définition d’objets céleste ; on parle de coordonnées angulaire (appelées latitude et longitude dans la géolocalisation) et d’un rayon (l’altitude pour ce qui est de la géolocalisation, | C’est le système qui est utilisé pour la géolocalisation ou la définition d’objets céleste ; on parle de coordonnées angulaire (appelées latitude et longitude dans la géolocalisation) et d’un rayon (l’altitude pour ce qui est de la géolocalisation, | ||
+ | |||
+ | {{back2root: | ||
Une coordonnée est exprimée avec un rayon r et deux angles : r, <m 13> | Une coordonnée est exprimée avec un rayon r et deux angles : r, <m 13> | ||
- | === le système cylindrique === | + | ==== le système cylindrique |
Ce système est le moins rependu, et souvent utilisé pour pour l’étude de mouvements hélicoïdaux ou en rotation autour d’un axe. | Ce système est le moins rependu, et souvent utilisé pour pour l’étude de mouvements hélicoïdaux ou en rotation autour d’un axe. | ||
+ | |||
+ | {{back2root: | ||
Une coordonnée est exprimée via deux angles : <m 13> | Une coordonnée est exprimée via deux angles : <m 13> | ||
- | === Conversions entre systèmes de références === | + | ==== Conversions entre systèmes de références |
- | == Sphérique → Cartésien == | + | === Sphérique → Cartésien |
- | < | + | <WRAP round box> |
<m 13>x = r * sin (theta) * cos (phi)</ | <m 13>x = r * sin (theta) * cos (phi)</ | ||
Ligne 78: | Ligne 84: | ||
</ | </ | ||
+ | === Cylindrique → Cartésien === | ||
- | == Cylindrique → Cartésien == | + | <WRAP round box> |
- | + | ||
- | < | + | |
<m 13>x = rho cos(phi)</ | <m 13>x = rho cos(phi)</ | ||
Ligne 89: | Ligne 94: | ||
</ | </ | ||
- | + | ===== Calculs et matrices: Méthode LICOL ===== | |
- | ===== Calculs et matrices ===== | + | |
En calcul 3D, le calcul matriciel la méthode la plus simple pour résoudre les transformations que l'on veut appliquer. | En calcul 3D, le calcul matriciel la méthode la plus simple pour résoudre les transformations que l'on veut appliquer. | ||
Ligne 98: | Ligne 102: | ||
Pour additionner 2 matrices, il s’agit de faire la somme de leurs membres: | Pour additionner 2 matrices, il s’agit de faire la somme de leurs membres: | ||
| | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
</ | </ | ||
- | Pour la multiplication, | + | Pour la multiplication, |
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{2}{2}{a1 b1 a2 b2}}{|} * | delim{|}{matrix{2}{2}{a1 b1 a2 b2}}{|} * | ||
Ligne 111: | Ligne 115: | ||
</ | </ | ||
- | ==== Note sur la multiplication par 1 ==== | + | <WRAP round info> |
+ | **Note sur la multiplication par 1** | ||
- | Dans un calcul simple, | + | Dans un calcul simple, |
- | < | + | <WRAP round box> |
- | <m 14>x prime = x * 1 </m> | + | <m 14>x prime = x * 1</m> |
</ | </ | ||
Ligne 124: | Ligne 129: | ||
En calcul matriciel , la valeur ' | En calcul matriciel , la valeur ' | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
</ | </ | ||
- | + | </ | |
Pour des questions pratiques, je ne me pencherais que sur le système cartésien, plus lisible et surtout plus commun, mais sachez qu’il est tout a fait possible de convertir une carte de la galaxie (qui est trouvable en coordonnées sphérique) dans un système cartésien: | Pour des questions pratiques, je ne me pencherais que sur le système cartésien, plus lisible et surtout plus commun, mais sachez qu’il est tout a fait possible de convertir une carte de la galaxie (qui est trouvable en coordonnées sphérique) dans un système cartésien: | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
</ | </ | ||
Ligne 137: | Ligne 141: | ||
et, ainsi la multiplication d'une matrice par ' | et, ainsi la multiplication d'une matrice par ' | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{3}{1}{x y z}}{|} = | delim{|}{matrix{3}{1}{x y z}}{|} = | ||
Ligne 147: | Ligne 151: | ||
Comme tous les langages de programmations n' | Comme tous les langages de programmations n' | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x*1) + (y*0) + (z*0)</ | <m 14>x prime = (x*1) + (y*0) + (z*0)</ | ||
Ligne 158: | Ligne 162: | ||
Ce qui dans ce cas précis peut s' | Ce qui dans ce cas précis peut s' | ||
- | < | + | <WRAP round box> |
<m 14>x prime = x * 1</m> | <m 14>x prime = x * 1</m> | ||
Ligne 170: | Ligne 174: | ||
Toutefois, pour pouvoir correctement appliquer certaines transformations (notamment la translation), | Toutefois, pour pouvoir correctement appliquer certaines transformations (notamment la translation), | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{4}{ | delim{|}{matrix{4}{4}{ | ||
Ligne 179: | Ligne 183: | ||
</m> | </m> | ||
</ | </ | ||
+ | |||
+ | Il est en effet beaucoup plus simple d' | ||
Ce qui peut se traduire simplement : | Ce qui peut se traduire simplement : | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x*1) + (y*0) + (z*0) + (w*0)</ | <m 14>x prime = (x*1) + (y*0) + (z*0) + (w*0)</ | ||
Ligne 194: | Ligne 200: | ||
Ou encore en mode " | Ou encore en mode " | ||
- | < | + | <WRAP round box> |
<m 14>x prime = x * 1</m> | <m 14>x prime = x * 1</m> | ||
Ligne 206: | Ligne 212: | ||
En résumé, un produit matriciel d'une matrice point " | En résumé, un produit matriciel d'une matrice point " | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{1}{ nx ny nz nw}}{|} = | delim{|}{matrix{4}{1}{ nx ny nz nw}}{|} = | ||
Ligne 221: | Ligne 227: | ||
Et se résous avec les équations suivantes: | Et se résous avec les équations suivantes: | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x*xa) + (y*xb) + (z*zb) + (w*xd)</ | <m 14>x prime = (x*xa) + (y*xb) + (z*zb) + (w*xd)</ | ||
Ligne 247: | Ligne 253: | ||
Sans doute la matrice la plus simple, la matrice de transformation d' | Sans doute la matrice la plus simple, la matrice de transformation d' | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{4}{ | delim{|}{matrix{4}{4}{ | ||
Ligne 261: | Ligne 267: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x*ex) + (y* 0) + (z* 0) + (w* 0)</ | <m 14>x prime = (x*ex) + (y* 0) + (z* 0) + (w* 0)</ | ||
Ligne 274: | Ligne 280: | ||
Si il existe une transformation souvent sous estimée, c'est bien celle-ci, le déplacement d'un point dans l' | Si il existe une transformation souvent sous estimée, c'est bien celle-ci, le déplacement d'un point dans l' | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{4}{ | delim{|}{matrix{4}{4}{ | ||
Ligne 286: | Ligne 292: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x* 1) + (y* 0) + (z* 0) + (w*tx)</ | <m 14>x prime = (x* 1) + (y* 0) + (z* 0) + (w*tx)</ | ||
Ligne 298: | Ligne 304: | ||
Rappelez vous que w = 1, et donc nos formules peuvent se traduire par: | Rappelez vous que w = 1, et donc nos formules peuvent se traduire par: | ||
- | < | + | <WRAP round box> |
<m 14>x prime = x+tx</ | <m 14>x prime = x+tx</ | ||
Ligne 316: | Ligne 322: | ||
Effet miroir par rapport au plan x/y (chaque coordonnée ' | Effet miroir par rapport au plan x/y (chaque coordonnée ' | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{4}{ | delim{|}{matrix{4}{4}{ | ||
Ligne 328: | Ligne 334: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x* 1) + (y* 0) + (z* 0) + (w* 0)</ | <m 14>x prime = (x* 1) + (y* 0) + (z* 0) + (w* 0)</ | ||
Ligne 340: | Ligne 346: | ||
Effet miroir par rapport au plan x/z (chaque coordonnée ' | Effet miroir par rapport au plan x/z (chaque coordonnée ' | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{4}{ | delim{|}{matrix{4}{4}{ | ||
Ligne 352: | Ligne 358: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x* 1) + (y* 0) + (z* 0) + (w* 0)</ | <m 14>x prime = (x* 1) + (y* 0) + (z* 0) + (w* 0)</ | ||
Ligne 364: | Ligne 370: | ||
Effet miroir par rapport au plan y/z (chaque coordonnée ' | Effet miroir par rapport au plan y/z (chaque coordonnée ' | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{4}{ | delim{|}{matrix{4}{4}{ | ||
Ligne 376: | Ligne 382: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
<m 14>x prime = (x*-1) + (y* 0) + (z* 0) + (w* 0)</ | <m 14>x prime = (x*-1) + (y* 0) + (z* 0) + (w* 0)</ | ||
Ligne 392: | Ligne 398: | ||
======= Autour de l'axe Y, avec un angle de ay degré ======= | ======= Autour de l'axe Y, avec un angle de ay degré ======= | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{ | delim{|}{ | ||
Ligne 405: | Ligne 411: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
- | <m 14>x prime = (x* cos(ay)) + (y* 0) + (z*-sin(ay)) + (w* 0)</ | + | <m 14>x prime = (x* cos(ay)) + (y* 0) + (z* -sin(ay)) + (w* 0)</ |
<m 14>y prime = (x* 0) + (y* 1) + (z* 0) + (w* 0)</ | <m 14>y prime = (x* 0) + (y* 1) + (z* 0) + (w* 0)</ | ||
Ligne 420: | Ligne 426: | ||
======= Autour de l'axe X, avec un angle de ax degré ======= | ======= Autour de l'axe X, avec un angle de ax degré ======= | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{ | delim{|}{ | ||
Ligne 431: | Ligne 437: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
- | <m 14>x prime = (x* cos(ax)) + (y* 0) + (z*-sin(ay)) + (w* 0)</ | + | <m 14>x prime = (x* 1) + (y * 0) + (z * 0) + (w* 0)</ |
- | <m 14>y prime = (x* 0) + (y* 1) + (z* 0) + (w* 0)</ | + | <m 14>y prime = (x* 0) + (y* cos(ax)) + (z* sin(ax)) + (w * 0)</ |
- | <m 14>z prime = (x* sin(ax)) + (y* 0) + (z* cos(ay)) + (w* 0)</ | + | <m 14>z prime = (x* 0) + ( y * -sin(ax)) + (z* cos(ax)) + (w* 0)</ |
<m 14>w prime = (x* 0) + (y* 0) + (z* 0) + (w* 1)</ | <m 14>w prime = (x* 0) + (y* 0) + (z* 0) + (w* 1)</ | ||
Ligne 446: | Ligne 452: | ||
======= Autour de l'axe Z, avec un angle de az ° ======= | ======= Autour de l'axe Z, avec un angle de az ° ======= | ||
- | < | + | <WRAP round box> |
<m 14> | <m 14> | ||
delim{|}{matrix{4}{4}{ | delim{|}{matrix{4}{4}{ | ||
Ligne 459: | Ligne 465: | ||
Voici les formules a appliquer si l'on désire transformer un point particulier: | Voici les formules a appliquer si l'on désire transformer un point particulier: | ||
- | < | + | <WRAP round box> |
- | <m 14>x prime = (x* cos(az)) + (y* sin(az)) + (z* 0) + (w* 0)</ | + | <m 14>x prime = (x* |
- | <m 14>y prime = (x*-sin(az)) + (y* cos(az)) + (z* 0) + (w* 0)</ | + | <m 14>y prime = (x* -sin(az)) + (y* cos(az)) + (z* 0) + (w* 0)</ |
<m 14>z prime = (x* 0) + (y* 0) + (z* 1) + (w* 0)</ | <m 14>z prime = (x* 0) + (y* 0) + (z* 1) + (w* 0)</ |