Forum: Object-Pascal / Delphi-Language
Delphi
by tripleeye,
9. Jun 2005
die schnittpunkte berechnest du einfach alle erst. dann nimmst du dir deine problemfälle vor, die ja immer dann auftreten, wenn die strecke einen eckpunkt schneidet (oder auf einer seite beginnt oder endet).
ich denke, man könnte dein Problem lösen, indem man dann jeder Seite des Polygons einen richtwinkel zuordnet. dies kann man z.b. dadurch erreichen, indem man den anstieg m der seite nach...
Forum: Object-Pascal / Delphi-Language
Delphi
by tripleeye,
8. Jun 2005
Also, Um zu prüfen, ob eine Strecke eine Diagonale ist, musst du ja nur die Anfangspunkte der Strecke auf Übereinstimmung mit den Eckpunkten des Polygons testen. So nach dem Motto:
// S(Xs;Ys) ist Startpunkt der Strecke
// P(Xp;Yp) ist Eckpunkt des Polygons
if (Xs=Xp) and (Ys=Yp)
then ;// Strecke startet auf Eckpunkt
// für Endpunkt und andere Ecken analog verfahren!
um das mit den...
Forum: Object-Pascal / Delphi-Language
Delphi
by tripleeye,
7. Jun 2005
Wenn du Probleme mit den Eckpunkten hast, wieso prüfst du dann nicht die Sonderfälle (Eckpunkte) zuerst?
Hast du da 2 Schnittpunkte gefunden kannst du bei einem kovexen Polygon sogar schon aufhören zu rechnen, ansonsten prüfst halt die einzelnen Seiten auf Kollision.