une idée pour représenter des trapèzes à coins coupés ?

une idée pour représenter des trapèzes à coins coupés ? - Algo - Programmation

Marsh Posté le 10-08-2004 à 19:38:33    

Salut,
 
Tout se passe dans le plan.
 
Comme forme de base, j'ai un trapèze rectangle dont j'extrais les dimensions suivantes d'une base de données :
AB (longueur)
AD (width1)
BC (width2)
 


A--------------------B
|                    |
|                    |
|                    |
|            ____----C
|    ____----
D----


 
Par quelques manipulations, je dois calculer les coordonnées des points afin de pouvoir retracer le contour sur base de ces uniques points.  
 
Supposons maintenant qu'on fasse une coupe C:xC/yC --> ça signifie que le morceau triangulaire à couper mesure xC sur le côté CD et yD sur le côté CB.  Ca donne a peu près ça :


A--------------------B
|                    |
|                    N  |
|                  /    yC  
|                /      |  
|    ____----  M     C  |
D----          <--xC->


 
Chaque coin peut être coupé de la sorte :


    ----------------
  /                  \  
 /                    |
|                    /      
|                ___/      
 \     ____------      
  -----            


 
Il est possible également que les coupes se superposent, par exemple si yA + yD est plus grand que le côté AB (la pièce d'origine est ABCD et le contour voulu est MBCNX) :


   A-----M----------------B
   |\   /                 |
   | \ /                  |
   |  X                   |      
   | / \                  |      
   |/   \                 |  
   D-----N----------------C            


 
Evidemment, on peut avoir ça sur chaque côté.  Mais jusque là, j'arrive à gérer l'histoire.
   
Maintenant mon problème :
Il peut y avoir plus d'une coupe sur un coin...
 
Pièce originale :


A----------------------------------------B
|                                        |
|                                        |
|                                        |
|                                        |
|                                        |
|                                        |
|                        ________--------C
|        ________--------
D--------


Première coupe dans le coin C, qui fait toute la longueur CD et une hauteur CM


A----------------------------------------B
|                                        |
|                                        |
|                                        |
|                                    ____M
|                            ____----    |            
|                    ____----            |            
|            ____----    ________--------C
|    ____----____--------
D--------


 
Deuxième coupe dans le coin C, sur une largeur GC et une hauteur FC.
Soit O l'intersection entre GF et MD.  Le countour final est donc ABFOD


A----------------------------------------B
|                                        |
|                                        F
|                                   O  / |
|                                    _/__M
|                            ____----/   |            
|                    ____----       /    |            
|            ____----    ________--G-----C
|    ____----____--------
D--------


 
 
En gros, dans mon programme, j'ai un tableau de 8 points (x et y) dans lequel je met tous les points de mon contour.  C'est suffisant en supposant que j'ai une coupe simple par coin.  Par contre, avec deux coupes, c'est là que je coince, l'algorithme devient beaucoup trop compliqué.  Il faudrait alors que je gère un tableau de 16 points.  Dans l'exmple ci-dessous, ça va encore, mais imaginez que j'ai deux coupes à chaque point et que les coupes se superposent... trouver les bons points du contour deviendrait beaucoup trop compliqué.
 
Avez-vous des idées, des tuyaux, pour me "décoincer" ? Ou bien une nouvelle représentation (avoir autre chose que des points dans la mémoire de mon programme, des droites par ex, ou bien une réprésentation polaire...)
 
Je suis un peu perdu :)
 
Merci A+


Message édité par Eniac le 10-08-2004 à 19:41:14

---------------
If you really want something, all the Universe conspires in helping you to achieve it.
Reply

Marsh Posté le 10-08-2004 à 19:38:33   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed