Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1441 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Calcul d'un angle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Calcul d'un angle

n°1507596
hamoudasaf​ira1
Posté le 26-01-2007 à 18:50:11  profilanswer
 

c'est encore moi!!!! j'ai un problème dans mon programme et quand je ferai l'affiche de tout les valeurs de calculs, c'est dans le calcul de l'angle qui plante. Donc je vous mis le bou de code, de calcul de l'angle et je voudrai savoir, est-ce comme ça, qu'il faut le faire ou bien non???
 

Code :
  1. double norme=vtkMath::Norm(Ne);
  2.     Z=vtkMath::Dot(Vi,Ne);//produit entre 2 vecteurs[3] le résultat dans Z cosOe=Ne.Vi
  3.     Tetta=cos(acos(Z)/2.0);//cosOe/2=cos(arccos(Ne.Vi))/2

mood
Publicité
Posté le 26-01-2007 à 18:50:11  profilanswer
 

n°1507606
franceso
Posté le 26-01-2007 à 19:24:35  profilanswer
 

1- Z n'est un cosinus que si tes deux vecteurs (Vi et Ne) sont normés. (sinon, rien ne te garantit que tu as un résultat de norme inférieure à 1)

Code :
  1. Z=vtkMath::Dot(Vi,Ne) / (vtkMath::Norm(Vi) * vtkMath::Norm(Ne));


 
2- c'est pas très efficace d'utiliser un acos pour calculer ton cos (theta/2).


---------------
TriScale innov
n°1507619
hamoudasaf​ira1
Posté le 26-01-2007 à 20:46:27  profilanswer
 

c'est je voudrai calculer c'est Oe/2 c'est pour ça j'utilise acos.
c'est bien ce que tu as fais mais sauf que la norme de vi et ne =1.
mais on fait, quand je fasse le calcul de Tetta j'aurai des valeurs indéterminés donc pour cela mon programme ne m'affiche plus rien. J'ai enlever le calcul de cosOe/2 j'ai resté sur cosOe, j'ai toujours le problème, donc ce n'est pas du calcul de l'angle. C'été du façon de faire le tableau .

Code :
  1. for (int e=0; e<this->Input->GetNumberOfEdges(); e++)
  2.    {
  3.     this->Input->GetEdgeVertices(e,ii,jj);//pour obtenir la barêtte Eiijj
  4.     //calcul du norme ||N1+N2||
  5.     Input->GetPointCoordinates(ii,Vi);//je donnes le coordonnées du ii et jj
  6.     Input->GetPointCoordinates(jj,Vj);
  7.     Ne[0]=Vi[0]+Vj[0];
  8.     Ne[1]=Vi[1]+Vj[1];
  9.     Ne[2]=Vi[2]+Vj[2];//additionner les 2 vecteurs Vi et Vj
  10.     double norme=vtkMath::Norm(Ne);
  11.     double Z=vtkMath::Dot(Vi,Ne)/(vtkMath::Norm(Vi)*vtkMath::Norm(Ne));//produit entre 2 vecteurs[3] le résultat dans Z cosOe=Ne.Vi
  12.     //double Angle=acos(Z);
  13.     //double Tetta=cos(Angle);//cosOe/2=cos(arccos(Ne.Vi))/2
  14.     double Edge=this->Input->GetDistanceBetweenVertices(ii,jj);
  15.     He=2*Edge*Z;
  16.     double LambdaSquare=pow(Lambda,2);
  17.     double Valeur=(Lambda-absolu);
  18.     double ValeurSquare=pow(Valeur,2);
  19.     if (absolu>Lambda)
  20.      W=LambdaSquare/(r*ValeurSquare+LambdaSquare);
  21.     else
  22.      W=1;
  23.     TableDeltaLambda[ii][0]-=W*He*Ne[0];
  24.     TableDeltaLambda[ii][1]-=W*He*Ne[1];
  25.     TableDeltaLambda[ii][2]-=W*He*Ne[2];
  26.     TableDeltaLambda[jj][0]-=W*He*Ne[0];
  27.     TableDeltaLambda[jj][1]-=W*He*Ne[1];
  28.     TableDeltaLambda[jj][2]-=W*He*Ne[2];
  29.     //cout<<"TableDeltaLambda[ii]"<<TableDeltaLambda[ii][0]<<TableDeltaLambda[ii][1]<<TableDeltaLambda[ii][2]<<endl;
  30.     //cout<<"TableDeltaLambda[jj][0]"<<"    "<<TableDeltaLambda[jj][0]<<"    "<<"[1]"<<"    "<<TableDeltaLambda[jj][1]<<"    "<<"[2]"<<"    "<<TableDeltaLambda[jj][2]<<endl;  
  31.    }

 
je vous ai mis cette boucle et c'est dans les 2 tableaux que je trouve le problème. Quand je les affiches, j'aurai les mêmes valeurs dans les 6 cas pourqoui????????


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Calcul d'un angle

 

Sujets relatifs
calcul poids dossier... pblmcalcul du normal d'un triangle en c++
Calcul et refresh juste aprescalcul de teinte
Calcul des codes barre EANVBA : calcul d'intégrale
pb de calcul dans une requette ACCESSCalcul de prix avec Access + VB
Pb de selection d'un tri dans une feuille de calcul[Excel VBA] Macro qui se lance à chaque calcul
Plus de sujets relatifs à : Calcul d'un angle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR