Einzelnen Beitrag anzeigen

Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#12

Re: schneidet eine Strecke ein Polygon

  Alt 20. Jun 2005, 10:31
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.
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat