Dinamikus koordináták

Mik azok a dinamikus koordináták?

Minden GeoGebra felhasználó tudja, hogy néha milyen hasznos lehet, ha egy pontot úgy tudunk mozgatni az egérrel, hogy "ragadjon rá" egy rácspontra, vagyis legyenek a koordinátái egész számok. Mint pl. itt. A dinamikus koordináták alkalmazása azt teszi lehetővé, hogy egy - erre felkészített - egérrel mozgatott pont ne csak arra legyen képes, hogy rácspontra ragadjon, hanem arra is, hogy ragadjon rá olyan pontokra, vagy vonalakra, amelyet a GeoGebra program készítője erre a célra kijelöl. Ezt ragadó pontnak nevezi a GeoGebra kézikönyv Mindez mire jó? Először ezt fogjuk bemutatni néhány korábbi applet elemzésével.

Példák a dinamikus koordináták alkalmazására

1. A Desarques alakzat hátterében: Vizsgáljuk meg alaposan az anyag második appletjét. Itt azt próbáltuk bemutatni, hogy ebben a 10 pontból és 10 egyenesből álló alakzatban, ahol minden pontra 3 egyenes és minden egyenesre 3 pont illeszkedik, egyik pontnak sincs kitüntetett szerepe: közülük bármelyik lehet két centrálisan perspektív háromszögnek a centruma. Figyeljék meg alaposan a mi szempontunkból ezt az appletet, amelynek a piros pont az egyetlen mozgatható pontja. Ha ezt a 10 pont közül bármelyiknek a közelébe visszük, akkor arra "ráragad", ... és történik valami. Egyszeriben megváltozik az ábra: az így kijelölt pont lesz a megjelenő két perspektív háromszögnek a centruma. Ha elmozdítjuk onnan az odaragadt pontot, akkor elmúlik a "varázslat", de másik pont közelében ugyanez megismétlődik. Mint később látni fogjuk, szabályozható, hogy milyen közel kell vinni ahhoz hogy "odaragadjon", vagy hogyan tudjuk onnan elhozni. A mi szempontunkból azt kell megjegyeznünk hogy ezzel a módszerrel ki tudtunk választani a 10 pont közül egyet, és ez létrehozott egy "eseményt". Szkeptikus olvasóink azt mondhatják erre, hogy ezt egy -egy kattintással is elintézhettük volna. Ez igaz, de így könnyebb előállítani a 10 különböző eseményt. És talán látványosabb is. 2. A neuszisz szerkesztés hátterében: Ha az első appletben kíváncsiak vagyunk az elnevezésekre, megjelenik egy pont, felette egy kérdőjellel. Ha ezt a pontot mozgatva közelébe visszük a vonalzónak, vagy a rajz bármely részletének, akkor arra ráugrik, és megjelenik az alakzat neve. Itt a dinamikus koordinátákat arra használtuk, hogy a dinamikus ponttal kiválasszunk-egy-egy objektumot, amivel kapcsolatban fel tudtunk írni egy-egy üzenetet. Ugyanitt azt is bemutattuk, hogy a kezdő pozíciót, amikor a vonalzó pontosan a helyén van, gyakorlatilag lehetetlen "kitapogatni" a P pont mozgatásával. Ezért a további három appletben, ha a P-pont "eléggé" közel került a "jó" beállításhoz, akkor a P-pont ráragadt a számunkra láthatatlan, de előre kiszámított jó pontra. Ez a "kegyes csalás" csak a dinamikus koordináták alkalmazásával érhető el.

Egy mintapélda a dinamikus koordináták alkalmazására

Feladat: Messe az ABC Δ AB oldalát egy C csúcsa köré írt kör a D és E pontban! Legyen a DE szakasz felezőpontja F , a DCE körív felezőpontja G. Különböző üzeneteket szeretnénk csatolni a D, E, F, G pontokhoz, valamint az AB szakaszhoz, a (DCE) körívhez, sőt ahhoz a helyzethez is, amikor a dinamikusan mozgatható V pont ezek egyikére sem ragadt rá. Az alábbi applet ezt a (rész)problémát oldja meg, azzal a nem titkolt céllal, hogy majd "élesben" is alkalmazni fogjuk abban az anyagban, ahol azt fogjuk megvizsgálni, hogy a szabályos ötszög valóban átdarabolható-e szabályos háromszöggé az ott bemutatott módon.

A szerkesztés

Először állítsuk elő a feladatban leírt ábrát. Meg kell határoznunk, hogy az egérrel mozgatott (alaphelyzetben szabad) V pontnak milyen közel kell kerülnie ahhoz az objektumhoz, amire rá szeretnénk ragasztani. Legyen ez a határ ε=Távolság(F,G)/2. Ha így választjuk ε-t, akkor ezzel kizártuk, hogy a DE körszelet belső pontja szabad pont maradjon. Az alábbi appletben a Szerkesztés jelölőnégyzetet bekapcsolva láthatóvá tettük azokat a vonalakat, amelyeken belül érve V ráragad a hozzá legközelebb eső alakzatra. A dinamikusan mozgó V pont "mögött" van két nem látható pont, amelyet most, a demonstráció kedvéért láthatóvá tehetünk. Ezek: M egy szabad (az egérrel mozgatható) pont, és L az M pontnak a szóba jöhet alakzatok halmazából vett M-hez legközelebbi pont. Ugyanis a GeoGebra LegközelebbiPont(<Tartomány>,<Pont>) parancsában a tartomány lehet olyan halmaz is, amelynek az elemei pontok, vagy vonalak. Pl. a mi esetünkben LP={D, F, E, G, i, j, l, m, q, r} , ahol az LP halmaz 4 pontból, az AB szakasz ε sugarú körein kívül eső legfeljebb 4 szakaszból és a (CDE) körív két körívéből áll. Így az L pont az L=LegközelebbiPont(LP,M) paranccsal áll elő. Így a keresett V pont a dt logikai értéktől függően ragad rá L-re, vagy mozog együtt M-el, ahol dt=Távolság(M, L)<ε. Ezt nem csak most, hanem minden dinamikus koordinátákat alkalmazó applet kulcsfontosságú parancsa: V=DinamikusKoordináták(M, Ha(dt, x(L), x(M)), Ha(dt, y(L), y(M))) Sajnos ezt a Ha(<feltétel>,<akkor>,<különben>) szerkeszetű részt mindkét koordinátára (térbeli esetben mindháromra) külön fel kell írni. Innen már csak meg kell tudnunk, hogy a V pontot az LP lista melyik eleme vonzotta magához (esetleg egyik sem): Eset={V ≟D,V ≟ F, V≟E, V≟G,Távolság(V, f)≟0,Távolság(V,d) ≟ 0,true} Ebből a pontosan egy true értéket tartalmazó listából kiválasztjuk, hogy melyik sorszámú elem az: p=Pozíció(true,Eset), végül kiíratjuk az Üzenet{} lista p -edik elemét, ami most éppen a V dinamikus változó aktuális helyére utal.
A fenti applet V pontját kicsit megmozgatva az egérrel, tapasztalhatjuk, hogy valóban az történik, amit a feladatban célul tűztünk ki, az üzenet is megjelenik, amit természetesen megváltoztathatunk. Javasoljuk olvasóinknak, hogy önálló munkáikban bátran alkalmazzák ezt a látványos lehetőséget, amely csak az első pillanatra tűnik bonyolultnak.

Ha kimegy,.... akkor bejön!

Az alábbi appletben még egy egyszerű, de talán hasznos példát mutatunk a dinamikus koordináták alkalmazására. Figyeljük meg, hogy ha az A , vagy B pontot kihúzzuk az egérrel a körvonalig, akkor átugrik a kör vele átellenes pontjába. Ez nem ugyanaz a 'jelenség, amit pl. a BelsőPont(Kör((0,0),10)) paranccsal érhetnénk el, hogy az így megadott pont "nem tud kimenni" az origó középpontú 10 sugarú körből. Most ki tud menni. ... De azon nyomban be is jön a körvonal átellenes pontján.
Ezt a jelenséget az A pont esetben ezzel így állítottuk elő. Legyen:
  • A_M egy tetszőleges szabad pont;
  • A_K=x(A)^2+y(A)^2>100. Ezt a logikai értéket megkaphattuk volna a Távolság((0,0),A)>10 paranccsal is, de ha tudunk, könnyítsük meg a GeoGebra dolgát azzal, hogy az egér koordináták racionális számok, így az előbbi kérdés racionális számok összehasonlítása, kevésbé munkaigényes.
  • A_L=LegközelebbiPont(Kör((0,0),10))
  • A=DinamikusKoordináták(A_M, Ha(A_K, -x(A_L), x(A_M)), Ha(A_K, -y(A_L), y(A_M))) . Sajnos a DinamikusKoordináták() parancs számára mindkét (3D_s esetben mindhárom) koordinátára külön-külön fel kell tenni azt a logikai kérdést, amely a dinamikát vezérli.
Figyeljük meg, hogy az appletben nem használtuk a megrajzolt kört, így általánosabb a kapott eredmény: mindig egy fix körre vonatkozik. A B pontot ugyanígy állítottuk elő azzal a különbséggel, hogy nem vezettük be az A_K és A_L objektumok megfelelőit. Ugyanakkor Ha az egér (amely lényegében a B_M pontot vonszolja) kifut a körből, akkor B addig jön beljebb-beljebb amíg az egér el nem engedi a láthatatlan B_M pontot. Ettől egy soros, persze jóval hosszabb lett a parancs, bár itt a leírásban három sorban írtuk le.
  • B_M szabad pont.
  • B=DinamikusKoordináták(B_M, Ha((x(B_M))² + (y(B_M))² > 100, -x(B_M) * 100 / ((x(B_M))² + (y(B_M))²), x(B_M)), Ha((x(B_M))² + (y(B_M))² > 100, -y(B_M) * 100 / ((x(B_M))² + (y(B_M))²), y(B_M)))
Azt, hogy miként "kerül át" a körön kíkvül lévő pont a körön belülre, akör középpontjával átellenes helyzetbe, vagyis mi van a fenti parancs hátterében, az un. polárreciprocitás tulajdonságaiból következik: Általánosan érvényes, hogy ahány dinamikus koordinátájú pont van egy appletben, ugyanannyi (láthatatlan) szabad pontra van szükség ezek vezérléséhez. Azt a kérdést, hogy miért jó tudni erről a "fogás"ról, egyelőre hagyjuk nyitva, annyit azonban megemlítünk, hogy az un elliptikus geometria kör modelljén úgy "viselkednek" a pontok, mint a fenti appletben.
Az [b]A[/b] pont az  [b]A[/b][sub][b]k[/b] [/sub](külső) pont [i] k[/i]-ra vonatkozó inverzének az O-ra vonatkozó tükörképe.
Az [b]A[/b] és [b]A[/b][b]k [/b]pontok közötti kapcsolat az un. [i]polárreciprocitás. ([/i]Ez épp úgy szimmetrikus transzformáció, mint pl. a tengelyes tükrözés)
Az A pont az Ak (külső) pont k-ra vonatkozó inverzének az O-ra vonatkozó tükörképe. Az A és Ak pontok közötti kapcsolat az un. polárreciprocitás. (Ez épp úgy szimmetrikus transzformáció, mint pl. a tengelyes tükrözés)
Ezt a "fogást" itt használtuk fel: az elliptikus geometria kör modelljén úgy "viselkednek" a pontok, mint a fenti appletben.

Értékadás( )

Az Ertékadás() parancs egy a fentihez némileg hasonló hatású GeoGebra utasítás. Akkor használjuk, ha azt szeretnénk, hogy csak egy egy GeoGebra objektum ideiglenesen, pl. egy kattintás erejéig vegyen fel új értéket. Mint például az alábbi feladatban: Legyen adott két háromszög, ABC és PQR . Az Ugrás gombra kattintva az ABC ideiglenesen essen egybe a PQR háromszöggel.
Az "Ugrás" gomb scriptjében van az a három parancs, amelyek a sciptre kattintva aktivizálódnak.
  • Érték(A,P)
  • Érték(B,Q)
  • Érték(C,R)
Fontos, hogy az A,B,C pontok egyel magasabb rétegben legyenek, mint P,Q és R, mert akkor az egérrel nem tudjuk áthelyezni. Figyeljük meg hogy R a z ABCΔ súlypontja, így az "ugrást" követően új értéket kap. A sript-ben leírt parancsok a megadott sorrendben hajtódnak végere, így más eredményt kapunk, az alábbi értékadásnál:
  • Érték(C,R)
  • Érték(A,P)
  • Érték(B,Q)
Fontos megjegyezni, hogy az Érték(A,P) parancs nem ugyanaz, mint az A=P, az utóbbi esetben a kattintást követően A már nem választható le P-ről. Ezt a parancsot pl. itt (2. app.) és itt használtuk egy-egy speciális eset beállítására