Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi schneidet eine Strecke ein Polygon (https://www.delphipraxis.net/47080-schneidet-eine-strecke-ein-polygon.html)

Robert Marquardt 20. Jun 2005 09:28

Re: schneidet eine Strecke ein Polygon
 
Hast du dich auch mit nicht-konvexen Polygonen beschaeftigt? Die Entscheidung was dabei innen und aussen ist, ist garnicht so leicht.

Flogo 20. Jun 2005 10:31

Re: schneidet eine Strecke ein Polygon
 
Ja! Meine Polygone sind nicht immer konvex. Bis jetzt lief die fehlerhafte Prozedur ungefähr so:

Code:
Innen := false;
für alle Linien im Polygon
  wenn die Linie[i] und die Linie((Punkt.X, 0), (Punkt.X, MaxY)) sich schneiden dann
  begin
    wenn Schnittpunkt.Y > Punkt.Y dann
      Innen := not Innen;
    wenn Abs(Schnittpunkt.Y - Punkt.Y) < Abs(Bester.Y - Punkt.Y) then
      Bester := Schnittpunkt;
  end;
Wenn Innen dann
  Result := Punkt
sonst
  Result := Bester;
Das ganze hat dann noch - wenn kein Schnittpunkt in der Spalte war - solange in beide Richtungen die Nachbarspalten ausprobiert, bis ein Punkt gefunden wurde.

Leider liefert der Schnittpunkt, der gespeichert wird, ungenaue, gerundete Werte, di nicht immer im Polygon liegen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz