OT : Delphi polygon

Foldesi Tamas sfthomas at sch.bme.hu
Thu Mar 25 19:42:51 CET 2004


Hi!

Egy gyakran használt megoldás: a pontokból oldalegyeneseket képzel. Ha
megvannak az egyenesek, akkor fogod a pontot, azon keresztül random
húzol egy egyenest. Nomármost ennek a random egyenesnek a
metszéspontjait kiszámolod az oldalegyenesekkel. Aztán megnézed, hogy
ebbõl mik a valódi metszéspontok (amik tényleg az oldalakra esnek, nem
az oldal meghosszabbítására...). Ezt úgy lehet, hogy x v. y
koordinátákat nézel, és így a metszéspontnak a szakasz két végpontja
között kell lenni. Tehát megvannak a valódi metszéspontok. Nézd meg
azt, hogy hány valódi pont van a random egyenesen lévõ kérdéses pont
két oldalán. Ha mindkét oldalon páratlan van, akkor a pont benne van a
poligonban. Ha páros a pontok száma, akkor kívül van. Hogy mi van
akkor, ha a két oldalon különbözõ a paritás? Most következik:

Elõfordulhat, hogy a random egyenes pont egy csúcsponton megy
keresztül. Ez zavart kelthet, ezért úgy definiáld a valódi
metszéspontokat, hogy egy szakaszhoz mindig csak az egyik végpontja
tartozzon. Ekkor minden mûxik jól, ugyanolyan lesz a két oldalon a
paritás :)
Azért ilyen bonyolult az algoritmus, mert ez tud kezelni konkáv
poligont is, nemcsak konvexet.
Ha lerajzolod, akkor jobban megérted.
Sok szerencsét!

Üdv: F.Tamás
BZ> Sziasztok !

BZ> Tudna valaki segiteni ? Egy kiértékelo
BZ> algoritmust keresek ami  egy poligonról
BZ> megmondja, hogy egy adott koordináta
BZ> bele esik-e vagy sem .   A koordináták
BZ> TPoint tömben vannak ugye, és max 6
BZ> vertexrol lenne szó.
BZ> Egy 7segLED decoder tervezöhöz kellene
BZ> ( Hogy ne legyen annyira OT )

BZ> Üdv.   Zoli




More information about the Elektro mailing list