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 ideiglanesen Pl. egy kattintás ereejéig vegyen fel új értéket. mint pl.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 sritjében van az a három parancs, amelyek a sciptre karrintva 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