Saját eszköz készítése
A Geogebra beépített eljárásai (parancsai) azok az alkalmazások, amelyek egy "üres" ggb fájlban is a rendelkezésünkre állnak, mielőtt bármilyen munkába fognánk. Ezeket - ha kint vannak a parancs sorban - ikonjaik, felbukkanó magyarázó szöveg alapján egy kattintással máris használatba vehetünk. Persze vannak olyan parancsok, amelyek nincsenek feltüntetve a parancs sorban, nincs ikonjuk, de megismerkedhetünk velük, ha kiválasztjuk a "minden parancs" felsorolásból. [br][br]Az is előfordulhat, hogy szükségünk lenne olyan eljárásra - eszközre-, amelyet többször, több programban használni tudnánk, de ilyen nincs. Akkor el kell készíteni, és lesz! Erre mutatunk itt egy példát.
A számítógépek megjelenése előtt a matematika tanár szakos és mérnök hallgatók egyik mumusa volt az a tétel, miszerint a sík öt általános helyzetű pontjára pontosan egy másodrendű görbe (kúpszelet) illeszkedik.[br]Főként, ha azt a feladatot kapták, hogy öt adott pont derékszögű koordinátáit ismerve írják fel az ezekre illeszkedő kúpszelet egyenletét, mondják meg, hogy ez most ellipszis, parabola hiperbola, vagy elfajuló kúpszelet, adják meg a középpontját, tengelyeit, stb. [br][br]Egy történet a múltból: egy hallgató egyszer éppen ilyen feladatot húzott a vizsgán. Kapott érte egy alig elfogadható osztályzatot. "Ez algoritmizálható" -mondta, és írt rá egy programot, amivel az OTDK -n első díjat nyert, miközben a tanárának halvány fff...fogalma sem volt - később sem - arról, hogy hogyan lehet ilyesmire megtanítani egy számítógépet. ( A félreértéseket elkerülendő: nem e sorok írója volt a tanár, de a diák sem.) Mindez az 1976.-77. tanévben történt. [br][br]Ma viszont ....[br].... ma viszont a GeoGebra eszköztárában ott van a [icon]https://www.geogebra.org/images/ggb/toolbar/mode_conic5.png[/icon] ikon. Erre, majd rendre az öt kiválasztott pontra kattintva máris megjelenik az öt pontra illeszkedő kúpszelet rajza, sőt egyenlete is. [url=https://hu.wikipedia.org/wiki/Deus_ex_machina]Deus ex Machina [/url] [br][br] A helyzet megfordult. Most sok diáknak arról nincs halvány fogalma sem, hogy mindezt hogyan kaptuk, mi a matematikai háttere.[br][br]Ez a szituáció legalább annyira veszélyes. De ez messzire vezető kérdés. [br]Elégedjünk meg annyival, hogy talán nem véletlen, hogy ez az ikon a GeoGebra emblémája.
Nemcsak öt pont, hanem például öt általános helyzetű egyenes is meghatároz egy kúpszeletet: azt amelyet az öt adott egyenes érint. Na erre már (még) nincs GeoGebra parancs. Erre készítünk most egy saját eszközt.[br][br]Elvileg egyszerű a feladat:[br][list=1][*]Legyen adott az öt általános helyzetű egyenes.[/*][*]Vegyük fel rendre ezeknek egy tetszőleges [i][b]k[/b][/i] körre vonatkozó pólusait: [icon]/images/ggb/toolbar/mode_polardiameter.png[/icon][/*][*]Adjuk meg az így kapott öt pontra illeszkedő [i][b]s[/b][/i] kúpszeletet: [icon]/images/ggb/toolbar/mode_conic5.png[/icon]:[/*][*]Vegyük ennek az öt pontnak az [i][b]s[/b][/i]-re vonatkozó polárisait, amelyek éppen [i][b]s[/b][/i] -nek az adott pontokhoz tartozó érintő lesznek. Ismét: [icon]https://www.geogebra.org/images/ggb/toolbar/mode_polardiameter.png[/icon] [/*][*]Vegyük az így kapott öt érintő egyenesnek a [i][b]k[/b][/i]-ra vonatkozó pólusait: [icon]https://www.geogebra.org/images/ggb/toolbar/mode_polardiameter.png[/icon] (A pólus-poláris kapcsolat szimmetrikus, így ezeket is ugyanaz az ikon és ugyanaz a parancs állítja elő.)[/*][*]A keresett kúpszelet az így kapott öt pont kúpszelete lesz: [icon]https://www.geogebra.org/images/ggb/toolbar/mode_conic5.png[/icon][/*][/list]A fenti fogalmak, összefüggések, állítások - és igazolásuk - persze komoly matematikai háttérismeretet igényel, de most nem feladatunk ezek taglalása.
Először - az elvi lépéseket követve - állítsuk elő azt a GeoGebra objektumot amelyet a saját eljárásunk outputjaként szeretnénk látni.[br][br]Eközben ügyelnünk kell arra, hogy az input objektumokon kívül semmi olyan objektumot ne használjunk, amit nem szeretnénk, ha az eljárás menet közben hiányolna. [br][br]Jelen esetben mindjárt az első lépésnél felhasználtunk egy tetszőleges [b]k[/b] kört. Ezt nem tehetjük, ezért az alábbi forrásprogramban minden esetben (összesen 10 alkalommal) egy [u]adott[/u] kört használtunk, amelyre nem hivatkozhatunk a nevével, mert ekkor ezt is kérné bemenő adatként a saját rutinunk. [br]Pl. [i]P_A =Poláris(a, k) [/i]helyett ki kell írnunk, hogy: [b]P_A=Poláris(a,Kör((0, 0),10)) [br][br][/b]Ezt nyomon követhetjük, ha az alábbi applet forrásfájlját letöltjük, és megvizsgáljuk.
A forrásfájl alapján az [b]Eszközök/Új eszköz létrehozása [/b]menüpontot elindítva válasszuk ki az [b]Kimenő adatok[/b] -output - objektumát (objektumait), majd a következő lépésben felkínálja a rendszer azokat az objektumokat amelyeket [b]Bemenő adatok[/b] menüpontban kezelni tudunk. Jelen esetben ez az a 10 bázispont, amely előállította az 5 egyenest. Ezek helyett válasszuk ki az 5 egyenest.[br]Ezek után kiválaszthatjuk az eljárásunk nevét, parancsszavát és ikonját. [br][br]Ikonként előzőleg készítenünk kell egy képfájlt, ami lehetőleg az input és output objektumok rajza. Ennek a méretét célszerű 64x64 pixelnyi méretűre tervezni, ekkor nem torzul az ikon képe.[br][br]A kész eljárás az[b] Eszközök/Eszközök kezelése[/b] menüponttal tovább alakítható és [u]menthető[/u], tetszőleges néven. A mentett saját rutin fájl kiterjesztése [b]*,ggt[/b] [br][br]Az így kapott saját eljárást bármely már meglévő GeoGebra fájlba beépíthető a [b]Fájl/Megnyitás... [/b]menüponttal. Beolvasás előtt felajánlja a rendszer, hogy mentsük a meglévő *.ggb fájlunkat. Ne ijedjünk meg, ha ezt nem tesszük, akkor sem teszi tönkre az eddigi fájlt a beépülő saját eszköz.[br][br]Az új eljárás beépítését követően az [b]Eszközök/Eszköztár testreszabása [/b]menüponttal tehetjük az ikonrendszer kiválasztott helyére az új ikont. Ezt az alábbi teszt fájlban valóban a helyére, a kúpszeleteket élőállító eljárások közé illesztettük be. Maga az eszköz természetesen a parancssorba írva is használható. [br][br]Egy programból csak akkor törölhető egy beépített saját eljárás, ha azt semmilyen módon nem használjuk.[br][br]Most azért készítettünk ugyanarra a feladatra két eszközt is, mert ha csak a kúpszeletre van szükségünk az azt előállító pontok nem kellenek, akkor jobb, ha az eszköz csak egy objektumot állít elő, és nem hatot. Ezek közül ugyanis bármelyiket törölve az összes törlődik. (A láthatóságukat, színüket, stílusukat stb. persze szabályozhatjuk.)[br][br]Olvasóink bizonyára tapasztalták, hogy az eljárások egy része egy egyenes helyett szakaszt is elfogad bemenő adatként. Pl. ez: [icon]/images/ggb/toolbar/mode_orthogonal.png[/icon] Ez jelen esetben is így van.[br]Javasoljuk olvasóinknak,hogy adjanak meg egy tetszőleges ötszöget, majd adják meg az élek egyeneseit érintő kúpszeletet, amely konvex ötszög esetén a beírt ellipszis lesz, függetlenül attól, hogy milyen sorrendben adtuk meg az éleket, mint szakaszokat.[br][br]Ugyanakkor megjegyezzük, hogy- mivel egy térbeli egyenesnek az egyenlete más szerkezetű mint síkban - ez az eljárás nem alkalmas a tér öt (egy síkban fekvő) egyenesére illeszkedő kúpszelet előállítására, mint ahogy a [icon]/images/ggb/toolbar/mode_conic5.png[/icon] eljárás sem.
Az első applet forrásfájlját letöltve [b]Kör((0,0),10)[/b] kör helyett válasszunk egy valóban tetszőleges, akár mozgatható [b]k[/b] kört! Tegyük ezt láthatóvá, és figyeljük meg alaposan, hogy a kapott [b][color=#ff0000]s[/color][/b] kúpszelet valóban nem függ [b]k[/b] megválasztásától![br][br]Ha már itt tarunk: egy kúpszeletet nem csak 5 pont vagy 5 (érintő) egyenes határoz meg egyértelműen? [br][br]Legyen adott a síkban öt általános helyzetű alapalakzat, amely lehet[br][list][*][b]4[/b] pont és [b]1[/b] egyenes;[/*][*][b]3[/b] pont és [b]2[/b] egyenes;[/*][*][b]2[/b] pont és [b]3[/b] egyenes; [/*][*][b]1[/b] pont és [b]4[/b] egyenes.[/*][/list]Nyitott kérdés - e sorok írója számára -, hogy készíthetők-e olyan saját eljárások, amelyek ezekkel a pontokkal ill. érintőkkel egyértelműen megadnak egy-egy kúpszelet. Ha igen, hogyan?