Je dessine deux sphères en 3D WPF qui a des points comme Point3D (0,0,0) et Point3D (-1.0,1.0,2.0) avec le rayon est de 0,10calcul vectoriel 3D dans WPF
Maintenant, je veux pour dessiner un Cylindre joignant ces sphères, la seule chose que j'ai pour cela est le rayon 0.02. Je veux savoir comment calculer le point 3d, la hauteur, la direction etc pour ce cylindre.
J'ai essayé en trouvant les points de la sphère btw milieu, c'est placer le cylindre au milieu de ces deux sphères, mais pas dans la bonne direction. J'essaie de faire tourner en utilisant dans le code ci-dessous.
Vector3D v1 = new Vector3D(0, 0, 0);
Vector3D v2 = new Vector3D(1.0, -1.0, 2.0);
Vector3D center = v1+ v2/2;
Vector3D axis = Vector3D.CrossProduct(v1, v2);
double angle = Vector3D.AngleBetween(v1, v2);
AxisAngleRotation3D axisAngle = new AxisAngleRotation3D(axis, angle);
RotateTransform3D myRotateTransform = new RotateTransform3D(axisAngle, center);
center.X = myRotateTransform.CenterX;
center.Y = myRotateTransform.CenterY;
center.Z = myRotateTransform.CenterZ;
mais le double angle = Vector3D.AngleBetween (v1, v2); ruselting NaN
Ce serait vraiment bien, si quelqu'un pouvait aider à faire cela. Merci d'avance.
Je ne suis pas un mathématicien mais un vecteur défini comme (0, 0, 0) n'a pas de magnitude et une direction de "nulle part ou partout". Pour trouver l'angle entre deux vecteurs, ces deux vecteurs doivent définir une direction. Vous ne pourrez donc jamais trouver un angle entre un vecteur zéro et un autre vecteur. –