|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 4 ![]() |
Salut à tous,
J'essaye de faire une fonction qui prend en paramètre les 3 coordonnés des points d'une droite A = (x, y, z), les 3 coordonnées du vecteur directeur de la droite n = (n1, n2, n3) et le rayon de la sphère. Cette fonction doit m'afficher le nombre de points d'intersections entre la droite et la sphère s'il y en a et le ou les coordonnées de ces points. Je pense qu'il faut établir une représentation paramétrique P = (x+k.n1, y+k.n2, z+k.n3), puis remplacer les coordonées de P obtenus dans l'equation de la sphère : x^2+y^2+z^2 = R^2 pour obtenir une equation du second degre du type ax^2 + bx + c = 0 qui permettrait alors de trouver la valeur de k et les points d'intersections. Mais voila, le problème, c'est que je ne vois pas comment faire pour passer de l'equation de la sphère avec les coordonnées paramétriques : (x+k.n1)^2 + (y+k.n2)^2 + (z+k.n3)^2 = R^2 à l'équation du type second degre, car il faut bien faire des calculs avant, et avec l'inconnu k, or je ne vois pas du tout comment on peut le faire en code C vu que tout variable à une valeur initiale. Voila, Merci d'avance |
|
|
00
|
|
|
#2 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 414 ![]() |
Citation:
(x+k.n1)^2 = x² + 2.x.k.n1 + k².n1² = (n1²).k² + (2.x.n1).k + x² idem pour les 2 autres termes.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 4 ![]() |
Merci pour ta réponse.
Il n'y a pas de problème s'il sagit de develloper les expression a la main mais le problème c'est que dans mon code, je ne peux pas laisser 1 inconnu k et faire des calculs avec, il faut d'abord que je déclare ma variable k = ... Je sais pas si tu vois ce que je veux dire ^^ |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2007 Messages : 3 578 ![]() |
Bonjour,
si justement, tu fais le calcul dans le cas général en gardant k. En développant les termes tu obtiens une équation du 2nd degré et en fonction du discriminant, tu pourras définir k.
__________________
Pour une bonne utilisation des balises code c'est ici! Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sourcesLa nature est un livre écrit en langage mathématique. Galilée. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 4 ![]() |
Ah oui, effectivement, j'ai manqué d'attention, mais grace a toi j'y suis parvenu. Merci bcp pour vos réponses
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 4 ![]() |
Je suis désolé de reprendre ce topic mais je suis bloqué cette fois pour l'équation du cône ^^
A l'aide de l'équation "x²+y²-z².(tan(a))² = 0", je suis parvenu à trouver les coefficients : a = n1² + n2² - n3².(tan(a))² b = 2.x.n1 + 2.y.n2 - 2.z.n3.(tan(a))² c = x² + y² - z².(tan(a))² Mais voila, je l'ai testé, les résultats ne sont pas bons et je n'arrive pas à trouver l'erreur. Pouvez vous m'indiquer ou elle se trouve svp. Merci d'avance. |
|
|
00
|
|
|
#7 |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 414 ![]() |
La formulation générale est la même pour toutes les coniques (même lorsqu'elles ne sont pas alignées sur l'origine).
Cela permet de calculer la distance, le point d'intersection et la normale au point d'intersection.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
00
|
|
|
#8 | |
![]() ![]() Jean-Marc Blanc Inscription : avril 2007 Messages : 2 657 ![]() |
Salut!
Citation:
Jean-Marc Blanc
__________________
Calcul numérique de processus industriels Formation, conseil, développement Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux) |
|
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() être humain Inscription : décembre 2007 Messages : 465 ![]() |
pour optimiser, il devrait etre possible de d'abord calculer la hauteur du triangle formé par deux points quelconques de la droite avec le centre de la sphere.
si la hauteur est egale au rayon de la sphere, la droite est tangente à la sphere. pour les points d'intersections, il ne peut y en avoir que deux au maximum, ça limite grandement la complexité du probleme. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com