Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Polygon schraffieren (ohne Canvas.Polygon)

  Alt 21. Dez 2013, 11:15
Sofern wir unter Schraffieren dasselbe verstehen (z.B. soetwas hier), kann ich folgendes vorschlagen:
- Je nach Art der Schraffur gewisse Schritte in der Y-Achse machen
- dann für jeden Y Wert die Schnittpunkte einer waagrechten (EDIT: oder halt andere irgendeine Richting) Linie von (x,y) wobei x = [-unendlich,unendlich]~ & y der aktuelle y-Wert
(das geht ganz einfach - ein Punkt ist in einem Polygon, wenn die Anzahl der Schnitte, die es bis zum aktuellen x Punkt macht, ungerade ist -> Beispiel: )
Code:
  +-----+
  |     |
--|-----|----
  +-----+
Nachdem die Linie links zum ersten Mal das Polygon schneidet (Schnittanzahl = 1 = ungerade), befindet sie sich im Polygon, bis sie wieder zum Schnitt kommt (2 = ungerade).

PS: -unendlich .. unendlich wird schwer gehen - ermittle am besten zuvor eine Bounding Box um dein Polygon, damit du die Min-Max x Werte hast!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (21. Dez 2013 um 12:30 Uhr)
  Mit Zitat antworten Zitat