IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

Probleme de math avec vecteur 3D


Sujet :

DirectX

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut Probleme de math avec vecteur 3D
    Bonjour, c'est encore moi et voila mon probleme (je le post dans DirectX car il porte sur les D3DXVECTOR3 et il ya peut etre des fonction DX qui pourraient etre utiles):
    J'ai deux vecteurs 3D, V et P, et je voudrais calculer 2vecteurs v0 et v1 de sorte que:
    v0+v1=V (somme vectoriel)
    v0=k*P (k: un float)

    Je ne pense pas que ce soit très compliqué mais si je suis capable de trouver le calcul je ne pense pas qu'il sera optimisé, je pense que je vais me perdre dans les sinus et cosinus pour arrivé a une formule trop lourde.

    Donc avis aux connaisseurs, meric d'avance!

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu peux trouver v0 et v1 directement à partir de tes équations, quel est ton problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    D3DXVECTOR3 v0 = k * P;
    D3DXVECTOR3 v1 = V - v0;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    k est inconnu

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Alors fixe le arbitrairement, 3 inconnues pour 2 équations c'est une de trop .

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    Non il ne faut pas le fixer arbitrairement, mais tu as raison j'oubliais de dire que v0 et v1 doivent etre perpendiculaire.

  6. #6
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    v0 = k *P
    donc tu peux exprimer facilement v1 en fonction de V, k et P.

    Maintenant pour trouver k, tu as la relation
    v0.v1 = 0 (produit scalaire)
    tu reintroduis l'expression de v0 et de v1 en fonction de V,k et P
    et tu tombes sur une équation simple de degré au plus deux en k.
    tu résous l'équation, tu trouves k et tu en déduis v0, v1.

    Bien évidemment puisque tu as une équation du second degré il est possible que tu aies deux valeurs de k possibles ou encore que tu n'en aies aucune (non complexe).

  7. #7
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    En fait tu as plus simple,
    p et p' sont orthogonaux donc sont une base orthogonale d'un plan de l'espace.

    v0 en particulier est le projeté de V sur p donc k = V.p / norme de p au carré. tu peux donc calculer directement k.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de réseau avec aol
    Par Mut dans le forum Développement
    Réponses: 22
    Dernier message: 26/05/2003, 23h58
  2. Réponses: 6
    Dernier message: 04/04/2003, 15h28
  3. [Kylix] Probleme de séparateur avec Kylix2 ?
    Par jeanphy dans le forum EDI
    Réponses: 4
    Dernier message: 10/02/2003, 16h41
  4. Réponses: 12
    Dernier message: 23/10/2002, 11h56
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo