Morko a écrit:Bonjour,
Je recherche une méthode pour obtenir les coordonnées de mes points 3d dans un repère 2D définit comme suit :
Dans le repère 3D orthonormé O(Xo, Yo, Zo) :
A(Xa, Ya, Za)
B(Xb, Yb, Zb)
C(Xc, Yc, Zc)
Et maintenant je souhaiterais obtenir les coordonnées de ces même points dans le plan P' formé par eux même.
Comme repère dans ce nouveau plan (vu que je veux pas une simple projection orthogonale), je souhaite prendre O'(X'o, Y'o) tel que :
Le centre de O' soit le projeté de O sur P'
X'o soit le projeté orthogonal de Xo sur P'
(O' Y'o) forme un vecteur de taille (O' X'o) et perpendiculaire à (O' X'o) dans le sens trigo
(bien sur si le projeté de Xo sur P' est confondu avec O' on fera lopération avec Yo pour Y'o)
Le plus compliqué étant de calculer ce nouveau repère :mur: .
Si je n'ai pas été très clair je peux tenter de faire un dessin mais ca va être dur de représenter le 3d ^^
Merci d'avance
JC
Edit :
-Il doit y avoir des relation avec des matrice pour passer d'un repère à l'autre mais je ne vois pas trop comment faire
-S'il y a un repère ortho plus simple à calculé dans P' je suis preneur
hammana a écrit:Pour la mise en oeuvre effective du calcul, tu penses exprimer les nouvelles coordonnées littéralement, c.à.d. en fonction des 9 valeurs Xa, Xb etc... ce qui serait à mon avis très lourd, sinon impossible, ou bien faire une application numérique.
Nightmare a écrit:Salut,
J'appelle R ton repère d'origine et R' ton repère dans le plan.
1) Exprime les coordonnées de tous tes nouveaux points dans R
2) Exprime la transformation de R à R'
3) Conclus quant aux coordonnées des nouveaux points dans R'.
Dlzlogic a écrit:Bonjour,
Ce qui me fait rajouter un commentaire, c'est votre précision "pas par projection".
Je ne connais pas le but de votre application, mais si par hasard il s'agit de traiter en 2D des informations type géographiques dont vous connaissez les coordonnées 3D, vous faites fausse route.
En effet ces applications utilisent les techniques de la géométrie cotée. Tous les éléments sont connus en 2D + Z, et non pas en 3D, malgré les apparences.
Mais si votre application n'a aucun rapport avec cela ignorez mon intervention.
Morko a écrit:Ben en faite, c'est pour appliquer un Delaunay sur un ensemble de point 3D et je ne veux pas utiliser un Delaunay 3D car j'ai déjà un 2D implémenté (lors d'un TP).
Donc j'ai pensé à faire un passage de 3D vers un plan 2D (j'ai mon ensemble de point découpé en cluster/primitive de façon à avoir du 2.5D) pour y appliquer mon algo de Delaunay
Dlzlogic a écrit:Je suppose qu'on parle du même Delaunay.
Pour moi la triangulation de Delaunay produit un maillage triangulaire en 2D. Chaque point ayant un Z.
C'est une application typique du 2.5D
Toute la question est de savoir ce que représentent vos points 3D. Si ce sont des points qui définissent des limites de terrain, un projet de route, ou je ne sais quoi du même genre, c'est du 2.5D.
N'hésitez pas à m'envoyer le fichier pour que je puisse vous orienter.
Morko a écrit:C'est plus pour des objets 3D issu de logiciel de CAO. Le truc c'est qu'ils sont déjà prédécoupé en primitive que je peux associer à du 2.5D. L'uniformité de l'objet global (l'ensemble des primitives) n'est pas important tant que chaque primitive possède un maillage uniforme (ce qui permettra un merge pour optimiser)
Morko a écrit:C'est plus pour des objets 3D issu de logiciel de CAO. Le truc c'est qu'ils sont déjà prédécoupé en primitive que je peux associer à du 2.5D. L'uniformité de l'objet global (l'ensemble des primitives) n'est pas important tant que chaque primitive possède un maillage uniforme (ce qui permettra un merge pour optimiser)
Dlzlogic a écrit:Je ne sais pas très bien ce que vous devez faire.
Par contre, ce que j'essaye de vous dire, c'est que la transformation d'une facette ABC avec les coordonnées relatives au plan passant par ABC ne donnera probablement pas les résultats espérés.
Soit une facette ABD voisine de ABC, c'est à dire ayant le côté B en commun. Après transformation, les points A et B n'auront pas les mêmes coordonnées suivant qu'ils appartiennent à la facette ABC ou à la facette ABD. Je pense que vous imaginer le désastre que sera le résultat.
Ces objets 3D sont-ils des objets possédant une verticale, comme du mobilier urbain, des bâtiments, des arbres, ou bien au contraire, sont-ils de vrais objets 3D, comme peut l'être une hélice de bateau?
Morko a écrit:oui je travaille sur des objets 3D tel que des voitures, avions, yachts, ...
"Soit une facette ABD voisine de ABC, c'est à dire ayant le côté B en commun. Après transformation, les points A et B n'auront pas les mêmes coordonnées suivant qu'ils appartiennent à la facette ABC ou à la facette ABD".
Êtes vous sûr que si je garde le même repère et le même plan car tous les triangles d'une primitive se trouvent dans le même plan; ca ne marchera pas ?. Il n'y a que certaine primitive où c'est pas le cas mais ce n'est pas grave car je peux ne pas lancer mon optimisation dessus.
Dlzlogic a écrit:La réponse est simple : si la notion de verticale est vraie pour les triangles de Delaunay ET pour vos objets, il faut garder cette verticale, c'est à dire le système XYZ le même pour tout le monde.
Si vous devez simuler un accident, alors la voiture fera des tonneaux mais la verticale du lieu restera la même.
Cela n'empêche en aucun cas de créer un objet 3D avec le terrain, les arbres etc.
En fait, pour quelle raison vous voulez créer un repère différent ? Le repère naturel, un plan de référence horizontal et une verticale conviennent parfaitement bien pour ce genre de choses.
Vous employez fréquemment le terme "primitive", je suppose que vous parlez des facettes triangulaires. J'aime pas trop cette notions, pour moi les primitives ne peuvent être que des points. Les facettes sont définies comme des liaisons entre des points. Un point A, sommet de 2 ou plusieurs facettes doit être unique, et pour des raisons évidentes d'occupation mémoire et/ou fichier il est très souhaitable qu'il soit aussi physiquement unique. Mais c'est un autre problème.
Dlzlogic a écrit:Oui, ok, mais j'ai toujours pas compris pourquoi tu veux changer de système de coordonnées, à moins que ce soit pour passer d'un système 3D à une visualisation (sur un écran), alors évidemment c'est du 2D.
En fait, la vraie différence entre le 2.5D et la 3D, c'est la méthode de calcul d'une distance. Si l'objet est aussi haut que long, il faut rester en 3D.
Mon intervention à propos de la notion de primitive est complètement indépendante
Morko a écrit:Si tu as un nuage de point correspondant à l'image de droite, est ce que tu as un Delaunay 3D ou 2.5D qui peut s'appliquer dessus correctement ?
Dlzlogic a écrit:Je me demande si on parle bien de la même-chose.
Pour Delaunay, une triangulation de Delaunay permet de partitionner une zone en triangles de façon que les triangles ne se recouvrent pas et qu'il n'y ait aucun trou.
Il est sous-entendu que la zone est en 2 dimensions. Si on attribue un Z à tous les points, on obtiendra un objet en 2.5D.
On peut appliquer la méthode de Delaunay à un espace à N dimension. Mais je ne crois pas que ce soit le sujet ici.
Ce que j'ai vu sur les photos, c'est une visualisation d'un objet 3D, donc, je me demande si l'expression "un Delaunay" n'est pas une utilisation abusive du nom de ce mathématicien Russe.
D'après ce que j'ai vu, on est en 3D, et on doit rester en 3D, et surtout pas changer de repère, sauf pour la visu, naturellement.
Dans le même ordre d'idée d'utilisation des termes "nuage de points" sous-entend "ensemble de points qui ne sont reliés entre eux par aucune logique".
Dlzlogic a écrit:Oui, alors on n'est pas d'accord sur les termes.
"Un Delaunay", je sais pas ce que c'est.
La méthode de Delaunay, je sais ce que c'est.
Chacune de ces 3 images, vues suivant une même direction supposons Z, peuvent représenter 3 surfaces. Chacun des points aura alors une coordonnée Z, non visible vu de haut.
Une surface dans un espace 3D est une fonction de la forme Z = f(X,Y), dans le cas présent.
Dans le cas général, on peut écrire S = f(X,Y,Z). Cela peut représenter la limite entre l'intérieur et l'extérieur d'un volume.
Il est possible que vous appeliez "un Delaunay" un objet 3D et que vous appeliez "primitive" une surface telle que Z = f(X,Y).
Prenons un tétraèdre. Pour moi, dans mon langage, il possède 4 primitives : les 4 sommets.
Il possède 4 faces constituées d'un triangle.
Les informations nécessaires sont :
4 points en 3D
4 facettes triangulaires définies par les liaisons orientées entre les 3 points qui constituent chacune d'elles.
Ce tétraèdre peut être vu de n'importe où, même de l'intérieur si on a convenu d'une couleur pour une facette tournant en sens inverse.
Ca, c'est ma définition et la méthode que je connais pour traiter et visualiser des objets 3D.
Si votre méthode ou les termes employés dont différents, il vaudrait mieux les expliquer, sinon il n'est pas possible de se comprendre.
En fait, la question que je me pose : apparemment ces 3 images représentent 3 surfaces d'un même objet.
Pour définir un objet depuis le même point de vue, il faut un nombre pair de surfaces, sinon, on ne peut pas dire que cet objet ait un intérieur et un extérieur.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 11 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :