Coordonnées de points 3D sur un plan 2D

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
nihaoma
Messages: 8
Enregistré le: 09 Jan 2007, 18:00

Coordonnées de points 3D sur un plan 2D

par nihaoma » 26 Mai 2010, 19:59

Bonjour tout le monde,

Pour les besoins d'un de mes programmes, j'ai besoin de faire quelques calcules de géométrie 3D, mais je dois avouer que je sèche :/

Voila ce dont j'ai besoin:

J'ai un ensemble de points définis chacun par 3 coordonnées dans l'espace (x, y et z).

J'ai ensuite une "caméra" (à priori, mathématiquement, un cône) définie ainsi:
- 3 coordonnées x, y et z, placant dans le meme repère que les points ci dessus "l'oeil" de la caméra (le sommet du cone)
- 2 angles X et Y qui permettent de définir la direction vers laquelle "regarde" la caméra
- 1 angle qui définit le dégrée d'ouverture de la caméra (je ne sais pas trop comment l'expliquer, sur une coupe du cone, c'est l'angle que forme l'axe Y avec le coté du cone)
- enfin, une "distance" qui correspond a la hauteur du cone (distance maximal a laquelle la caméra peut voir les points).

J'ai besoin, dans un premier temps, de savoir si un point est "vu" par la caméra (a priori, il faut donc que je sois capable de savoir si les coordonnées d'un point sont "dans" le cone)

Ensuite, si un point doit etre vu, j'ai besoin de pouvoir calculer les coordonnées 2D (X et Y) du point quand il est affiché sur le moniteur de la caméra (projection sphérique ?). Idéalement, si en plus je pouvais avoir un facteur représentant la "profondeur" de ce point par rapport aux autres, ca serait génial.

voila, je pense que mes question sont claires (mais les réponses ne le sont pas du tout pour moi lol)

PS: je ne suis pas très à l'aise avec les formule mathématiques, donc si quelqu'un pouvait me donner mes réponses en prenant en compte le fait que je vais coder ca, ca serait parfait :)

Merci pour vos réponses !



friandise
Membre Naturel
Messages: 15
Enregistré le: 26 Mai 2010, 18:58

par friandise » 26 Mai 2010, 20:35

Vu en spé : une équation d'un cône de révolution d'axe



étant l'angle formé entre une génératrice du cône et l'axe du cône.

gigamesh
Membre Rationnel
Messages: 712
Enregistré le: 26 Fév 2010, 03:32

par gigamesh » 26 Mai 2010, 20:36

Bonsoir,
ce dont tu as besoin, plutôt que les angles que tu appelles X et Y, c'est d'un vecteur unitaire qui donne la direction dans laquelle regarde la caméra. Appelons le, ce vecteur. Alors si ton angle X c'est l'angle par rapport à l'axe (Ox) dans le plan (xOy) (le sol, quoi) et si Y c'est l'angle par rapport à l'horizon, (zéro si // (xOy) ),
alors ton vecteur a pour coordonnées

Pour que ton point soit dans l'ouverture du cône, calcule le produit scalaire , qui te donne le cosinus de l'angle entre l'axe du cône et le vecteur qui va de la caméra C au point M à propos duquel tu t'interroges.

Et la distance CM c'est , qui te donne aussi la profondeur.

nihaoma
Messages: 8
Enregistré le: 09 Jan 2007, 18:00

par nihaoma » 26 Mai 2010, 22:10

alors déja, merci beaucoup d'avoir prit le temps de vous intéressez à mon problème.

gigamesh, ta réponse semble intéressante, en tous cas tu sembles très bien savoir de quoi tu parles, mais hélas je ne comprend pas... en fait je comprend la principe, mais j'ai bien peur d'avoir du mal à traduire tout cela sous une forme exploitable en programation.

Pardon d'abuser, mais n'est-il pas possible d'avoir ces informations sur la forme d'équation linéaires (j'entend par la qui s'écrive sur une ligne) avec les bon paramètres à remplacer directement ?...des équation avec notation mathématique, j'en ai vu tout plein sur le net (car j'ai quand meme tenter de chercher avant), mais je me trouve incapable de les traduire....par exemple tu me parle d'un vecteur, ok, mais concrètement ca me donne quoi ? tu me parles d'un produit scalaire et me donne une formule, je t'en remercie, mais je ne sais pas comment l'appliquer (et oui, tu as un esprit faible en maths devant toi...)

l'quation donnée par friandise serait pour moi exploitable, mais ce n'est qu'une partie de la réponse et je ne sais comment faire le reste..

en tous cas merci de votre aide !

gigamesh
Membre Rationnel
Messages: 712
Enregistré le: 26 Fév 2010, 03:32

par gigamesh » 27 Mai 2010, 22:48

Bonsoir,
un vecteur c'est un triplet de réels ;

struct vect
{
real x;
real y;
real z
}

function produitscalaire (u,v:vect):real
{
return u.x*v.x+u.y*v.y+u.z*v.z;
}

nihaoma
Messages: 8
Enregistré le: 09 Jan 2007, 18:00

par nihaoma » 28 Mai 2010, 08:55

c'est déja nettement plus compréhensible pour moi ! :)

merci beaucoup, je vais tenter de mettre tout ca en application.

(désolé pour le temps de réponse, mais le forum ne m'a pas envoyer de notification cette fois)

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 48 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite