Contour de polygone

Signaler
Messages postés
43
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011
-
Messages postés
43
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011
-
Bonjour à tous,

voilà je vous explique mon problème... j'ai un peu de mal sur le "comment" de la chose

1/ Je charge un fichier wrl (tous les vertex sont dans 1 seul plan xy, je ne traite que des segments de droites)
2/ Je dessine tout ca dans un picturebox
3/ Je traite tous les segments de manière à savoir s'ils sont connexes les uns aux autres et je leur donne un "sens" comme à un vecteur de manière à pouvoir dire si le contour que je vais faire sera à "sa droite" ou à "sa gauche".

4/ Mon problème: comment définir l'ensemble des points qui sont l'intersection des tangentes des segments considérés, ca a l'air un peu chinois comme ca mais je ne peux pas faire plus clair, à part peut-être un petit dessin

Le rendu tout nu de ma pièce...

Le même avec les tangentes ramenées à une distance de 5 pixels "à gauche" ou "à droite"

Je suppose que vous l'avez compris, mon problème est de coder le trajet parcouru par une fraise de diamètre D qui découpe un gabarit.

NB: je dispose de tout dans une structure

        public struct Line
        {
            public float x1, y1, x2, y2;
            public int sens;
            public bool Exists;

            public int NextID,PrevID;
            public bool HasNext, HasPrev;
        }

Donc je veux travailler sur cette structure pas sur les pixels affichés (qui en plus sont aggrandis pour le geste )

Voilà, j'espère que je ne vous ai pas donné trop mal au crâne

Merci d'avance!
@+

4 réponses

Messages postés
43
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011

Oulàh, je n'imaginais pas que c'était si compliqué... Bon je pense avoir trouvé une solution à peu près valable: utiliser les régions (additions, soustrations). Je vous tiens au courant.

@ +
Messages postés
43
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011

Bon, j'ai effectivement trouvé une solution correcte mais elle fonctionne par approximation. Je peux obtenir une précision de l'ordre du 20e de mm pour des formes relativement petites en gardant un temps de calcul inférieur à 10 secondes. Le problème est que industriellement, mon procédé n'est pas viable. Je continue de chercher une solution mathématique au problème.

En attendant, je vous montre où j'en suis !

Le dessin est fait dans autocad, exporté en DXF, puis importé dans mon programme avec une bibliothèque tres simplifiée que j'ai faite.
Les cercles et arcs sont émulé par des segments (la précision est réglable évidemment).

Bleu: les polygones de base et leur contour.
Rougle clair: matière à garder.
Rouge foncé: matière à jeter
Ronds verts: les points clés des polygones.

Voilà, sur ce modèle de test la précision est de 0.5mm. Les longueurs étant particulièrement grandes, je considère que c'est une bonne tolérance. Ceci dit, il suffit de changer une variable pour calculer au micromètre si ca nous chante, il faudra juste penser qu'on aura largement le temps de se faire un petit café.

Voilà, je pense que je vais en rester là pour cette technique sans erreur possible et passer à une methode plus mathématique (je n'aime pas trop l'approximation dans un programme ^^).

A+ tout le monde

Les positions de la fraise sont l'ensemble des points qui composent les tracés, non ?
Messages postés
43
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011

Oui ;-) (après plus d'un an lol)