Précédent   Forum des professionnels en informatique > Autres langages > Algorithmes > Mathématiques
Mathématiques Forum d'entraide sur les mathématiques et l'algorithmique numérique. Avant de poster : Cours d'algorithmique numérique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2011, 18h44   #1
Invité de passage
 
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Déterminer les points d'intersections entre une droite et une sphère.

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
madara22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 18h54   #2
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 414
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 414
Points : 14 115
Points : 14 115
Citation:
Envoyé par madara22 Voir le message
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
et bien, il suffit de développer chaque terme de ton équation : k est la seule inconnue, tout le reste est connu.

(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.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 20h00   #3
Invité de passage
 
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
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 ^^
madara22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 20h13   #4
Modérateur
 
Inscription : août 2007
Messages : 3 578
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3 578
Points : 4 404
Points : 4 404
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 sources


La nature est un livre écrit en langage mathématique. Galilée.
magelan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 22h10   #5
Invité de passage
 
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
Ah oui, effectivement, j'ai manqué d'attention, mais grace a toi j'y suis parvenu. Merci bcp pour vos réponses
madara22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 20h00   #6
Invité de passage
 
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
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.
madara22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 12h59   #7
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 414
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 414
Points : 14 115
Points : 14 115
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).

Ray - Quadric Intersection

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.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 13h39   #8
Rédacteur/Modérateur
 
Jean-Marc Blanc
Inscription : avril 2007
Messages : 2 657
Détails du profil
Informations personnelles :
Nom : Jean-Marc Blanc
Âge : 71

Informations forums :
Inscription : avril 2007
Messages : 2 657
Points : 3 493
Points : 3 493
Salut!
Citation:
je suis bloqué cette fois pour l'équation du cône
Pour plus d'informations, voir l'ouvrage du Marquis de l'Hôpital: "Traité analytique des sections coniques et de leur usage pour la résolution des équations".
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)
FR119492 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 18h09   #9
Membre expérimenté
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 465
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 465
Points : 582
Points : 582
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.
__________________
http://www.pending.me.uk/nmc/bla_1356091200.png
Vivement 21/12/2012
edfed est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h50.


 
 
 
 
Partenaires

Hébergement Web