A koordinátageometriában az a szép, hogy ugyanannak a feladatnak sokféleképpen lehet nekifogni. Kérdés, hogy te döntöd-e el, hogy a négyzet mely négy adatát adod meg, vagykészen kapod. (Pl. A és C 2-2 koordinátája, A és a középpont 2-2 kordinátája, egy csúcs és egy oldalhossz és egy irányszög stb. stb.) Mivel itt három egymást kizáró eset van, lényegében egy döntésről van szó elágazással. Egy lehetséges megoldás pl. felírni mind a négy oldal egyenletét, és ezekbe behelyettesíteni a keresett pontot. Értelemszerűen, ha bármelyik a négy közül nulla, akkor rajta van az oldalegyenesen, de csak akkor van rajta az oldalon, ha a távolsága a középponttól kisebbegyenlő a fél átlóval, vagy a távolsága annak az oldalnak a felezőpontjától kisebbegyenlő a fél oldallal. Külünben kívül van. Ha egyik sem nulla, akkor pedig a négy előjel alapján lehet dönteni, hogy külső vagy belső. Ez egy lehetőség, van több más is a matemtika keretein belül.
Meg lehet gyorsítani annyival, hogy ha a pont távolsága kisebb a középponttól, mint a fél oldal, akkor biztosan belső pont, ha nagyobb a középponttól, mint a fél átló, akkor biztosan külső, és ezzel a sík nagy részét lefedted, és csak a két kör közötti gyűrű pontjait kell részletesebben vizsgálni. Ha viszont programozó fejjel gondolkodsz, megnézheted, milyen pontossággal adható meg a pont két koordinátája, aztán írhatsz egy backtrack algoritmust, ami besatírozza a négyzetet a megadott pontossággal, és ha eltalálta, akkor belül van, az oldalra esik külön eset. Viszont itt vigyázni kell, ha lebegőpontos aritmetikát használsz. Zsolt Nagy <[email protected]> ezt írta (időpont: 2020. dec. 15., K, 10:48): > Sziasztok! > > Kérnék szépen segítséget, hogy az alábbi problémát hogyan > lehet leprogramozni: > > Írjunk olyan programot, amely eldönti, hogy egy tetszőleges P(x,y) pont > egy tetszőleges ABCD négyzetnek: > > a) a négyzet belső pontja, > b) a négyzeten kívül helyezkedik el, > c) illeszkedik a négyzet valamely oldalára. > > Az adatokat a billentyűzetről kérjük be. > > Így fogtam neki: > négyzetről van szó, tehát akkor minden oldala egyenlő, minden szöge 90 > fok, amennyiben ez nem igaz akkor már rombusz, paralelogramma, stb... és a > feladat meg négyzetről beszél > A(xa,ya) és C(xc,yc) pontokat elég megadni, magyarul ez a két pont adja a > négyzet átlóját, tehát csak 1 féle négyzet rajzolható belőle > felveszem az P(x,y) koordinátát és ezt kell vizsgálni hogy hová esik. > > Nos itt akadtam el, hogy van erre valami matematikai függvény??? > Ebben tudna segíteni valaki? > > Előre is köszönöm! > > Üdv:Zsolt > _______________________________________________ > Techinfo mailing list > [email protected] > Fel- és leiratkozás: > http://lista.sulinet.hu/cgi-bin/mailman/listinfo/techinfo > Illemtan: http://www.szag.hu/illemtan.html > Ügyfélszolgálat FAQ: http://sulinet.niif.hu/ >
_______________________________________________ Techinfo mailing list [email protected] Fel- és leiratkozás: http://lista.sulinet.hu/cgi-bin/mailman/listinfo/techinfo Illemtan: http://www.szag.hu/illemtan.html Ügyfélszolgálat FAQ: http://sulinet.niif.hu/
