CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

rotation dans l'espace

neg282
neg282
Niveau 7
17 juillet 2005 à 16:52:01

( je précise, meme si ca n´a pas beaucoup d´importance que je programme en c++)

Je cherche à faire une fonction de ce type:

void Rotation(float *x,float *y,float *z,float nx,float ny,float nz,float mx,float my,float mz,float a)
{
}

où :
( x,y,z) est un point dans l´espace.
( nx,ny,nz) et ( mx,my,mz) sont 2 points formant un axe de rotation.
et ( a) le nombre de degré de rotation.

Le probleme étant à partir de ca de trouver l´algorythme.
Je précise que si je poste ce problème ici, ce n´est pas par parresse. Ce problème dépasse largement mes connaissance en mathématique.
Je n´attend évidament pas que quelqu´un me fasse ma fonction. Mais quelques petites indications ou des liens vers des pages qui traitent de ca me seraient bien utiles.

MrGoTo
MrGoTo
Niveau 8
17 juillet 2005 à 17:11:02

En openGL tu as une fonction qui te fait la rotation qui prend presque les mêmes paramètres que la tienne. Mais tu veux faire tourner un truc grace à quoi ?

MrGoTo
MrGoTo
Niveau 8
17 juillet 2005 à 17:13:41

Ou ptetre tu veux l´equation pour calculer les nouvelles coordonnées du points c´est ça ?

novembre
novembre
Niveau 18
17 juillet 2005 à 18:05:59

Tu pourrais transformer en coordonnées sphèrique. Ce type de repère est tout à fait adapté pour une rotation.

neg282
neg282
Niveau 7
17 juillet 2005 à 19:07:36

" Ou ptetre tu veux l´equation pour calculer les nouvelles coordonnées du points c´est ça ? "

oui, c´est tout à fait ca.

Sinon, pour les coordonnées sphèrique ( ou polaire je crois), je vois comment faire ca en 2D, mais pas en 3D.

novembre
novembre
Niveau 18
17 juillet 2005 à 21:20:04

Les coordonnées sphérique s´applique a un plan 2 D et les sphériques en 3 D. On y exprime les coordonnée en fonction de alpha, phi et r. Soit 2 angles et le rayon .

http://fr.wikipedia.org/wiki/Coordonn%C3%A9es_polaires#G.C3.A9n.C3.A9ralisation_des_coordonn.C3.A9es_sph.C3.A9riques_:_angles_d.27Euler

LGV
LGV
Niveau 28
17 juillet 2005 à 23:25:47

rotation arbitraire autour d´un axe arbitraire => quaternions, c´est fait pour.

neg282
neg282
Niveau 7
18 juillet 2005 à 00:23:58

les quaternions ? c´est pas cet ensemble dans lequel sont inclu les complexes ? Si oui, c´est largement hors de ma portée. J´ai déjà un peu de mal avec les complexes.....

le_duche
le_duche
Niveau 10
18 juillet 2005 à 09:19:55

C´est très simple ! Je suppose que tu as déja programmé une fonction de multiplication matricielle ? Si oui tu as fini !
Il te suffit en effet de faire la multiplication de ton vecteur ( x,y,z) avec la " matrice de rotation"
Je peux te filler cette matrice dans quelques temps, laisse moi juste le temps de le faire sur papier.

le_duche
le_duche
Niveau 10
18 juillet 2005 à 09:22:56

neg282 je crois que tu as un peu trop fumé avec les quaternions !
Ils ont été inventé pour avoir un exemple théorique de groupe non commutatif. Et je ne vois pas l´intéret d´utiliser des points dans un espace à 4 dimensions pour une simple rotation qui se fait comme je l´ai dit par simple multiplication matricielle ( je sais de quoi je parle, on ne cause absolument pas de quaternions dans mon cours de mécanique théorique en trois dimensions de 2ème fac math ! )

le_duche
le_duche
Niveau 10
18 juillet 2005 à 09:38:46

:rouge: ca faisait un peu argument d´autorité mon truc là... :p)

le_duche
le_duche
Niveau 10
18 juillet 2005 à 09:51:22

ouais en fait ca prend un peu plus de temps que je pensais et je n´en dispose pas mnt ! Je te le fais pour ce soir au plus tard ! :ok:

dis moi juste si je peux modifier un peu les données de la fonctions ? il y aurais plus facile je pense.

LGV
LGV
Niveau 28
18 juillet 2005 à 09:54:25

tant qu´a etre dans les arguments d´autorites, et si tu veux jouer a qui a la plus grosse ( formation.. ; ) ) j´ai fini mes etudes et mon boulot c´est de faire des jeux en 3D : quand on parle de skinning de bones et autres joyeusetes, je sais aussi de quoi je parle..
Ici on parle de rotations arbitraire autour d´un AXE ARBITRAIRE. Oui tu peux ecrire la matrice de rotation, mais tu verras que c´est bcp plus complique que de le faire avec un quaternion. Qu´il s´agisse d´une extension des complexes, c´est une chose et on est bien d´accord ; savoir a quoi ca peut servir c´est bien aussi...

LGV
LGV
Niveau 28
18 juillet 2005 à 09:59:03

( et comme un bon lien vaut mieux qu´un long discours http://en.wikipedia.org/wiki/Quaternion )

le_duche
le_duche
Niveau 10
18 juillet 2005 à 10:28:36

:malade: pourquoi ils ne m´ont pas appris ca l´année passée :question: On a fait toute notre géométrie de fou sans ca ! J´ai bien vu apres que ce n´était pas une simple matrice de rotation mais c´est qmeme pas très compliqué, le plus chiant c´est de généraliser. Il faudrait en effet une matrice de changement de base pour simplifier, une translation et une rotation autour d´un des axes du nouveau repère. Pour les quaternions, je sais pas comment ca marche et je comprend pas l´anglais :rouge: tu peux m´expliquer ca en deux mots :ok:

ps mon but n´était pas de faire la grose tête mais je met ca souvent depuis qu´un *** de terminale qui racontais n´importe quoi m´a dit " t´es qui toi en math pour me parler comme ca ? " et disons que j´ai pas aimé :nonnon:

mais il semblerait effectivement que je ne savais pas de quoi je parlais :honte: , mais bon, en deux ans de math pures, je n´ai vu des quaternions qu´en algèbre théorique...

Chaos_Clad
Chaos_Clad
Niveau 10
18 juillet 2005 à 10:29:28

Pauvre neg282 :rire:

Chaos_Clad
Chaos_Clad
Niveau 10
18 juillet 2005 à 10:39:03

En mathématique, les quaternions sont une extension non-commutatives des nombres complexes. Ils ont été décrit pour la première fois par Sir William Rowan Hamilton d´Irlande en 1843 et appliqués à la mécanique dans un espace à trois dimensions. Premièrement, les quaternions étaient vue comme de la folie car ils n´obéissaient pas à la règle de commutativité ab = ba. Bien qu´ils aient été remplacés dans la plupart des applications par les vecteurs, ils trouvent encore leur utilité en théorie et en mathématiques appliquées ( pas sur là), en particulier dans pour les calculs incluant une rotation en trois dimensions.
Dans le langage moderne, les quaternions forment une quatrième dimensions ? de la division de l´algèbre ? par delà les nombres réels ( X Files dites-vous). Les algèbres des quaternions sont souvent dénotées par H.

Voilà, c´est pour l´intro, le reste j´ai la flegme de tout traduire :malade:

Chaos_Clad
Chaos_Clad
Niveau 10
18 juillet 2005 à 10:44:08

En fait les quaternions consistent à apporter aux nombres réels les éléments i ( des nombres complexes), j et l tel que :

i² = j² = k² = ijk = -1
ij = k et ji = -k
jk = i et kj = -i
ki = j et ik = -j

Tous les quaternions sont une combinaison linéaire du quaternion de base 1, i, j et k et tous les quaternions s´écrivent sous la forme a + bi + cj + dk ( avec, bien sur, a, b, c et d en tant que nombres réels).
Après si tu veux il y a les exemples où seule la beauté des maths s´exprime :-)

le_duche
le_duche
Niveau 10
18 juillet 2005 à 10:45:02

ca je connais :-)
Je sais juste pas comment on les utilise pour faire une rotation...

( paragraphe " Group rotation" si tu as encore le courage...) bien qu´une explication de qqun qui les as deja utilisé est parfois meilleure que de la théorie d´un bouquin...

le_duche
le_duche
Niveau 10
18 juillet 2005 à 10:45:57

t´es en train de te fatiguer pour rien, tu fais un re-make de mon cours de l´année passée là :rire:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment