Affichage objet 3D et arêtes cachées
Résolu/Fermé
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
-
15 mars 2021 à 17:09
yg_be Messages postés 23413 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 janvier 2025 - 26 mars 2021 à 10:49
yg_be Messages postés 23413 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 janvier 2025 - 26 mars 2021 à 10:49
A voir également:
- Affichage objet 3D et arêtes cachées
- Vente objet occasion entre particulier - Guide
- Google maps satellite 3d - Guide
- Paint 3d mac - Télécharger - Dessin & Illustration
- Smartshow 3d - Télécharger - Visionnage & Diaporama
- Affichage double ecran - Guide
9 réponses
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
Ambassadeur
1 557
16 mars 2021 à 13:11
16 mars 2021 à 13:11
bonjour, ne suffit-il pas d'afficher les arêtes au lieu des faces, et, pour chaque face, déterminer les segments d'arêtes qui deviennent cachés?
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
16 mars 2021 à 13:23
16 mars 2021 à 13:23
Bonjour yg_be,
Tout à fait
Pour la visu avec arêtes cachées invisibles, j'affiche les faces dans le bon ordre et je les "peint", et donc la vue est correcte
Par contre, maintenant, il faudrait afficher les arêtes, et déterminer les segments cachés, et c'est
bien pour cela que je cherche l'algorithme qui convient ...
Tout à fait
Pour la visu avec arêtes cachées invisibles, j'affiche les faces dans le bon ordre et je les "peint", et donc la vue est correcte
Par contre, maintenant, il faudrait afficher les arêtes, et déterminer les segments cachés, et c'est
bien pour cela que je cherche l'algorithme qui convient ...
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
1 557
16 mars 2021 à 15:57
16 mars 2021 à 15:57
la seule partie qui me semble un peu compliquée est de déterminer si un point est à l'intérieur d'un polygone.
http://xymaths.free.fr/MathAppli/Algorithme-Interieur-Polygone/
http://xymaths.free.fr/MathAppli/Algorithme-Interieur-Polygone/
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 16 mars 2021 à 18:17
Modifié le 16 mars 2021 à 18:17
Oui, mais il y a d'autres critères à prendre en compte, regarde ce vé:
Le point 1 est à l'intérieur d'un polygone, l'arête A1 est en pointillés, l'arête A2 est en partie en pointillés,
Le point 2 de la face avant est à l'intérieur d'un polygone mais elle n'a pas de pointillés
et ca dépend de l'ordre d'affichage, si on commence par la face arrière, aucun point n'est dans un polygone
Il y a surement un algo plus global ...
Le point 1 est à l'intérieur d'un polygone, l'arête A1 est en pointillés, l'arête A2 est en partie en pointillés,
Le point 2 de la face avant est à l'intérieur d'un polygone mais elle n'a pas de pointillés
et ca dépend de l'ordre d'affichage, si on commence par la face arrière, aucun point n'est dans un polygone
Il y a surement un algo plus global ...
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
1 557
16 mars 2021 à 18:40
16 mars 2021 à 18:40
pour moi, l'algo est clair:
- tu as une liste des arêtes visibles et une liste des arêtes invisibles
(ces listes sont vides au départ)
- tu fais une boucle sur toutes les faces, en commençant par les faces du fond
- pour toutes les arêtes de la liste des arêtes visibles,
si l'arête visible a une intersection avec une des arêtes de la face,
tu découpes l'arête visible en deux arêtes
(qui remplacent l'arête originale dans la liste des arêtes visibles)
- pour toutes les arêtes de la liste des arêtes visibles,
si le point milieu de l'arête est à l'intérieur du polygone
(le polygone de la face),
l'arête devient invisible (elle change de liste)
- tu ajoutes les arêtes de la face dans la liste des aretes visibles
- tu affiches les arêtes des deux listes
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
1 557
>
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
16 mars 2021 à 18:45
16 mars 2021 à 18:45
si tu veux réassembler les arêtes invisibles avant de les afficher, je pense que le plus simple est de mémoriser, pour chaque arête découpée, son arête d'origine. cela aidera à déterminer quels sont les candidats à l'assemblage.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
17 mars 2021 à 10:34
17 mars 2021 à 10:34
Bonjour yg_be,
OK, j'essaie et je te tiens au courant ...
OK, j'essaie et je te tiens au courant ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 17 mars 2021 à 17:47
Modifié le 17 mars 2021 à 17:47
Holà yg_be,
J'avoue - à ma courte honte - que je n'ai pas tout compris :-)
Prenons la face arrière de mon vé (donc la face en vé du fond) :
si l'arête visible a une intersection avec une des arêtes de la face : il y a une arête dans ce cas, mais
pourquoi la découper en 2 ?
si le point milieu de l'arête (visible) est à l'intérieur du polygone de la face
aucune arête visible dans ce cas ...
J'avoue - à ma courte honte - que je n'ai pas tout compris :-)
Prenons la face arrière de mon vé (donc la face en vé du fond) :
si l'arête visible a une intersection avec une des arêtes de la face : il y a une arête dans ce cas, mais
pourquoi la découper en 2 ?
si le point milieu de l'arête (visible) est à l'intérieur du polygone de la face
aucune arête visible dans ce cas ...
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
1 557
17 mars 2021 à 23:03
17 mars 2021 à 23:03
quand tu commences avec la face arrière, la liste des arêtes visibles est vide.
ce n'est qu'en ligne 12 que tu ajouteras des arêtes dans la liste des arêtes visibles.
ce n'est qu'en ligne 12 que tu ajouteras des arêtes dans la liste des arêtes visibles.
- tu as une liste des arêtes visibles et une liste des arêtes invisibles (ces listes sont vides au départ) - tu fais une boucle sur toutes les faces, en commençant par les faces du fond - pour toutes les arêtes de la liste des arêtes visibles, si l'arête visible a une intersection avec une des arêtes de la face, tu découpes l'arête visible en deux arêtes (qui remplacent l'arête originale dans la liste des arêtes visibles) - pour toutes les arêtes de la liste des arêtes visibles, si le point milieu de l'arête est à l'intérieur du polygone (le polygone de la face), l'arête devient invisible (elle change de liste) - tu ajoutes les arêtes de la face dans la liste des arêtes visibles - tu affiches les arêtes des deux listes
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
20 mars 2021 à 12:01
20 mars 2021 à 12:01
Bonjour yg_be,
Ca a l'air de fonctionner sur le papier.
En attendant d'intégrer ça dans mon code, je vais tester dans un petit programme test
en mode console avec un simple cube
J'ai codé en dur la liste des points et leur coordonnées, j'ai orienté le cube avec une matrice de rotation, et je suis en train de développer mes fonctions de calcul de point d'intersection
arête/polygone de face, de découpage d'arête, et de vérification si point milieu d'arête est à l'intérieur du polygone de face
Ensuite, j'afficherai simplement la liste des arêtes supposées être en pointillés
Ca a l'air de fonctionner sur le papier.
En attendant d'intégrer ça dans mon code, je vais tester dans un petit programme test
en mode console avec un simple cube
J'ai codé en dur la liste des points et leur coordonnées, j'ai orienté le cube avec une matrice de rotation, et je suis en train de développer mes fonctions de calcul de point d'intersection
arête/polygone de face, de découpage d'arête, et de vérification si point milieu d'arête est à l'intérieur du polygone de face
Ensuite, j'afficherai simplement la liste des arêtes supposées être en pointillés
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 25 mars 2021 à 17:43
Modifié le 25 mars 2021 à 17:43
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
1 557
25 mars 2021 à 19:23
25 mars 2021 à 19:23
pas mal!
pas trop compliqué pour déterminer si un point est à l'intérieur d'un polygone?
pas trop compliqué pour déterminer si un point est à l'intérieur d'un polygone?
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 25 mars 2021 à 17:45
Modifié le 25 mars 2021 à 17:45
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
26 mars 2021 à 09:58
26 mars 2021 à 09:58
Bonjour yg_be,
Pas de problème, j'ai suivi le lien que tu m'avais donné
Tu l'as surement deviné en regardant mes images, j'ai fait tout ça en Python + Tkinter
Je sais, c'est fou de refaire complètement ce que les logiciels de CFAO existants font très bien, et même mieux depuis longtemps, mais ca fait travailler mes neurones :-)
Certains font bien des mots croisés ou des sudoku ...
Pas de problème, j'ai suivi le lien que tu m'avais donné
Tu l'as surement deviné en regardant mes images, j'ai fait tout ça en Python + Tkinter
Je sais, c'est fou de refaire complètement ce que les logiciels de CFAO existants font très bien, et même mieux depuis longtemps, mais ca fait travailler mes neurones :-)
Certains font bien des mots croisés ou des sudoku ...
yg_be
Messages postés
23413
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 janvier 2025
1 557
26 mars 2021 à 10:49
26 mars 2021 à 10:49
merci d'aussi faire travailler nos neurones en posant des questions ici!