grafok egyamasban...

Papp Zoltán zombi at c2.hu
Sun Jan 21 14:14:22 CET 2007


jhidvegi írta:
> Moczik Gabor wrote:
>
>> Akkor nem ertem hogy gondolod.
>> Ha az elozo mozgashoz kepest ellenkezo iranyba mozdulsz, akkor az
>> ellenkezo elojelet jelent, es igy kellene kijonnie egy osszegnek?
>
> Hát persze! Mondjuk elindulok az óra mutató járásával azonos irányba, mert
> ezt tekintem pozitívnak. Ha a zárt görbén kívül van az a pont, ahonnan
> húzogatom az egyeneseket a zárt görbe pontjaihoz, akkor pozitív irányba nő
> a
> megtett szög, ha visszafelé jövök, akkor csökken.
>
> Ha az általad is rajzolt példán megnézed, a végén nulla jön ki. Akkor is,
> ha
> van olyan pontja a G betűt körvonalazó görbének, amibe érve a kis kör
> vmelyik pontjáról már túl vagy a 360 fokon, de ugyanoda kell visszaérned,
> és
> ekkor elenyészik az összes szög nullává.
> Mondom, rajzold csak le, és gondolatban menj végig! Egyből ki fog jönni!
>
> hjozsi

Először is (másik szálra válaszolva): a "fill"-ezős módszerekkel az a baj,
hogy feltételeznek egy rasztert. Ha a pontok valós számok (márpedig
általában azok), akkor is lehet raszter, de ekkor ezt a tűrés adja. Pl. ha
plotterrel rajzolok, akkor mondhatom, hogy pl. 0,01mm a raszter. De ekkor
már kerekítési hibákból hibás eredmények jöhetnek ki. Ha elég kicsi tűrést
veszek, akkor meg lehet, hogy milliószor milliós lesz a "képernyőm", ez
egyébként működhet, ellenben ehhez már nagy számítási kapacitás is
kellhet.

Szerintem is az a jó megoldás, amit hjózsi kitalált. Természetesen csakis
zárt görbékre igaz.

1. Meg kell vizsgálni, hogy a két görbe nem metszi-e valahol egymást. Azaz
A és B görbének van-e metsző szakasz-szakasz-, pont-szakasz- vagy
pont-pont-párja (ha van, goto 3.)
2.Vesszük az A görbe egyik pontját (legyen A[0]), végigjárjuk a B görbe
összes szakaszát, és összeadjuk, hogy ezeket milyen szög alatt látjuk az
A[0] pontból. Ha az összeg 0,akkor a B görbén kívül van az A1 pont, ha 360
egész számú többszöröse, akkor belül.
Ha bárhol a látszó szög 180 fok lenne, akkor az az A[i] pont pont rajta
van a B vizsgált szakaszán (de ezt már (1)-nél kijátszottuk, tehát nem
lehetséges)
Ha mindegyik A[i] pont belül van, akkor egyértelműen belül van az A görbe
B-n. Ha mindegyik pont kívül van, akkor A is kívül van B-n (ekkor viszont
még nem tudjuk, hogy B belül van-e A-n!)
3. Ha szakasz-szakasz metszés van, akkor egyértelműen metszik egymást a
görbék.
4. Ha szakasz-pont metszés van (azaz egy pont a másik görbe szakaszám
fekszik), akkor elképzelhető, hogy az egyik görbe a másikon belül vagy
kívül van, csak egy pontja fekszik a másik görbe egyik szakaszán. Itt
definíció kérdése, hogy ezt elfogadjuk-e vagy ez már metszésnek számít. És
itt kezdődnek a bonyodalmak. Innentől kezdve mindenféle ocsmány állat
léphet fel. Ugyanez vonatkozik a pont-pont egybeesésekre is.
pl. képzeljetek el egy homokóra alakzatot, aminek a központi
kereszteződése pont merőleges egymásra. Most erre képzeljetek rá egy
négyzetet, aminek mind a 4 pontja rajta-fekszik a homokóra
kereszteződésein.

Szóval tovább lehet ezt még fejleszteni...

Üdv
-- 
Papp Zoltán
OneWay Electronics


--------------------------------- Hirdetés ---------------------------------

Mi a C2? http://mail.c2.hu




More information about the Elektro mailing list