Stránky byly staženy z http://www.pef.zcu.cz/pef/kmt/mfi/cabriJava.htm

CabriJava _ dynamická geometrie na WWW

Miroslav Lávička, Pedagogická fakulta Západočeské univerzity v Plzni

Poznámka: Na této stránce jsou vystaveny pouze statické obrázky. Odkaz na stránku s interaktivním apletem se skrývá pod obrázek s logem CabriJavy.


Co je CabriJava?

CabriJava je software, který umožňuje publikovat na internetu dynamické geometrické obrázky vytvořené v programu Cabri  II. Předpokladem pro uživatelský přístup k vystaveným obrázkům CabriJavy je znalost práce s internetovým prohlížečem, výhodou je samozřejmě zkušenost s geometrickým programem Cabri. Uživatel potřebuje pouze prohlížeč, který podporuje Javu 1.1 (jako např. MS Internet Explorer od verze 4.5 nebo Netscape Navigator od verze 4.5). Chceme-li se sami stát tvůrci WWW stránek s dynamickými Cabri obrázky, potom je znalost práce s vlastním Cabri nutností, dále bychom měli něco vědět i o tzv. HTML jazyku a samozřejmě ovládat CabriJavu (stačí jen velmi skromné základy). Podobně jako v jiných oborech otevírá CabriJava cestu k tvorbě učebních textů z geometrie pro různé formy distančního studia prostřednictvím internetu. Stránky mohou být ovšem také uloženy na CD-ROMu nebo jiném dostatečně kapacitním záznamovém médiu.


 Jak rozhýbat web pomocí dynamické geometrie?

Je několik řešení, jak využívat a sdílet dynamické Cabri obrázky pomocí internetu. Nejobvyklejší formou je poučný hypertext vystavený na WWW stránce, který odkazuje na Cabri obrázky. Jako uživatelé si obrázky stáhneme z webovského serveru ve formě souborů typu .fig, otevřeme je v Cabri lokálně instalovaném na svém počítači a manipulujeme s nimi podle návodu. Klasická webovská animace není pro naše účely nejvhodnější: její tvorba je poměrně náročná, především však dává minimální možnosti pro interaktivitu. Přístupem, který nejvíce sleduje vlastní práci s Cabri (dynamičnost, interaktivita), je pojetí uplatňované v CabriJavě. S vystavenými objekty může uživatel pohybovat a dynamicky tím měnit situaci na nákresně, aniž by měl instalován program Cabri. Jsme-li navíc tvůrci webovských stránek, pak oceníme především úsporu času. Jakmile máme jednou obrázek vytvořený v Cabri, je otázkou jen několika málo minut umístit jej na web.

CabriJava, jak název napovídá, byla vytvořena pomocí populární Javy, což je na platformě nezávislý, objektově orientovaný programovací jazyk vyvinutý společností Sun Microsystems. Do webovské stránky se vkládají tzv. aplety, což jsou programy napsané ve zmiňovaném jazyce Java, které se spouštějí prostřednictvím prohlížeče WWW stránek. Uživatelé, kteří nebudou WWW stránky sami vytvářet, nemusejí vědět o Javě vůbec nic. Pro ty, kteří si budou chtít vyzkoušet, jak vytvořit vlastní WWW stránku s dynamickou geometrií, uvedeme jen nezbytné, ale postačující základy v závěrečném rychlokursu tvorby webovských stránek s CabriJava aplety.


Historie CabriJavy

Počátek spadá do roku 1996, kdy Gilles Kuntz zahájil na půdě Univerzity Josepha Fouriera v Grenoble, kde již předtím vznikly pod vedením Jean-Marie Laborda všechny verze programu Cabri, práce na jeho internetové nadstavbě. Pracovní verze programu jsou průběžně k dispozici na internetu. V prvních verzích CabriJavy chyběla podpora některých objektů (např. kuželosečky, množiny objektů) a některých dalších funkcí Cabri. Na internetu tak nemohly být vystaveny všechny obrázky, které bylo možné vytvořit v Cabri. To je však již dávno minulostí a aktuální verze (v době vzniku článku stále ještě ne definitivní) nás již při tvorbě dynamických obrázků téměř neomezuje. Současně probíhá překlad do dalších jazyků (původně francouzština a angličtina _ dnes navíc němčina, italština, španělština, holandština, portugalština a také čeština).


 Jak uživatelsky pracovat s WWW stránkou, na níž jsou CabriJava aplety?

Hned na začátku je nutné upozornit na základní rozdíl mezi Cabri a CabriJavou _ pomocí Cabri vytváříme na nákresně (obrazovce) geometrické objekty (jako např. body, přímky, úsečky, kružnice, kuželosečky apod.). CabriJava oproti tomu "jen" pomáhá zobrazit výsledný obrázek na webu se zachováním dynamických prvků Cabri. Uživatel, který si prohlíží vystavený obrázek, již nemá přístupné nabídky s nástroji Cabri. Může jen přetahovat objekty po nákresně, tím měnit jejich polohu, popř. tvar, velikost a tak modifikovat i objekty od nich odvozené, nemůže však již žádný další objekt přidat. K dispozici jsou jen nástroje CabriJavy umístěné na liště v dolní části okna apletu.

Natahování WWW stránky s javovským apletem trvá obecně o něco déle než je tomu u standardní stránky obsahující pouze text. Důvodem prodlevy je náročnější komunikace mezi naším počítačem a vzdáleným webovským serverem, na kterém jsou aplet a samotný Cabri obrázek uloženy. Postupně se nám na stránce vymezí okno apletu _ předdefinovaný prostor, ve kterém se bude odehrávat interaktivní geometrická situace, a do něj se nahraje obrázek. Nástrojová lišta (pokud nebylo její zobrazení naprogramováno, poklepeme v okně apletu) nám dává k dispozici několik funkcí (viz obr. 1) _ krokování konstrukce vpřed a vzad (obdoba historie v Cabri), možnost posouvat obrázek v okně apletu, aktivaci stopy zvoleného objektu, animační pružinu a možnost stáhnout si originální Cabri obrázek. Přiblížíme-li se kurzorem do blízkosti objektu, zobrazí se stejně jako v Cabri jeho identifikace _ Tento bod, Tato přímka, Tento trojúhelník, Tato kuželosečka apod.

   Nástrojová lišta

Obr 1. Nástrojová lišta a její funkce

Příklad 1. Přesvědčte se, že výšky v libovolném trojúhelníku procházejí společným bodem.

Podívejme se nyní na konkrétní příklad stránky s CabriJava apletem, která je věnována učivu 6. ročníku základní školy (může se např. jednat o stránku z internetové učebnice, kterou dáme žákům k prostudování formou vlastního experimentování). Po nahrání WWW stránky máme k dispozici výkladový text a okno apletu, ve kterém je znázorněn trojúhelník ABC s výškami (viz obr. 2). Všechny tři procházejí jedním bodem a tato situace se nezmění, budou-li uživatelé tahat za jednotlivé vrcholy a trojúhelník tak deformovat. Přitom mohou pozorovat, kam padne ortocentrum v závislosti na typu trojúhelníka. Je vidět, že CabriJava s sebou přináší ještě jeden užitečný efekt: na stránce není nutní vystavovat tři samostatné (ale hlavně statické) obrázky _ jeden s ostroúhlým, druhý s pravoúhlým a třetí s tupoúhlým trojúhelníkem. Každou situaci je možné pohodlně vymodelovat v okně apletu.

Obr 2. Okno prohlížeče po načtení stránky obsahující naučný text a aplet CabriJavy. 

Příklad 2. Sestrojte kružnici opsanou trojúhelníku ABC.

I další možnosti CabriJavy si ukážeme na jednoduchém příkladu z učiva 6. ročníku ZŠ. Tentokrát už použijeme nástrojovou lištu _ konkrétně funkce Krok vpřed a Animace krok za krokem. Na obrázku je nejprve vykreslen trojúhelník ABC. Stiskneme tlačítko Krok vpřed na nástrojové liště, čímž se objeví osa strany. Dalším stiskem téhož tlačítka sestrojíme další osu a takto postupujeme až k finálnímu kroku konstrukce kružnice opsané trojúhelníku ABC (viz obr. 3). Samozřejmě je možné se vrátit i o krok zpět a určitou fázi konstrukce si projít ještě jednou. Obrázek lze přitom dynamicky měnit taháním za vrcholy a můžeme tak pozorovat, kam padne střed kružnice opsané pro různé typy trojúhelníků _ opět v jediném obrázku na WWW stránce. Tento příklad názorně ukazuje jiný typ využití CabriJavy v internetových učebnicích při výkladu látky. Je lépe, je-li žák svědkem průběhu konstrukce krok za krokem, než aby musel dešifrovat v hotovém obrázku, co bylo sestrojeno nejdříve, co poté a co nakonec. Pro "ušetření práce" jsme tu rovněž mohli využít jinou funkci nástrojové lišty, Animaci krok za krokem. Jedná se prakticky o totéž s tím rozdílem, že se jednotlivé konstrukční kroky provádějí automaticky a nečeká se na  stisk tlačítka.

Obr 3. Okno apletu postupně zachycující vybrané konstrukční kroky

Příklad 3. Jsou dány body A, B a kružnice k. Určete množinu těžišť trojúhelníků ABC, kde vrchol C leží na kružnici k.

Na tomto místě představíme nástroj lišty Stopa objektu, který umožňuje vykreslit stopu pohybujícího se objektu. Na nástrojové liště aktivujme funkci zanechávání stopy (Stopa ano/ne), klepneme na těžiště T, čímž jej označíme pro zanechání stopy, a opětovným klepnutím na tlačítko Stopa ano/ne přepneme kursor zpět do původního stavu. Táhneme bod C po kružnici k a současně dochází k "razítkování" nákresny bodem T (viz obr. 4a). Pohyb bodu C po kružnici je možné realizovat i pomocí tzv. animační pružiny. Bod T necháme označený tak, aby zanechával stopu, navíc k bodu C přiložíme nataženou pružinu (na nástrojové liště aktivujeme Natáhnout pružinu). Pohyb se pak uskuteční i bez našeho ručního přičinění (viz obr. 4b).

Obr. 4a Vytváření stopy těžiště taháním bodu bodu C po kružnici ručně

Obr. 4b Animační pružina nasazená na bod C.

 

Zastavme se ještě krátce u předcházejícího příkladu. Výše uvedená ukázka zachycující práci se stopou názorně demonstrovala genezi hledané množiny těžišť. K prezentaci závislosti výsledné kružnice na daných prvcích je však stopa _ stejně jako v Cabri _ nepoužitelná, neboť nesdílí dynamiku konstrukce. K tomuto účelu by se spíše uplatnila množina objektů, která je známa z Cabri. Změnou tvaru trojúhelníka nebo jeho polohy vůči dané kružnici se pak aktuálně překresluje i množina těžišť (viz obr. 5). Ovšem vzhledem k nemožnosti přidávat do apletu nové objekty je nutné, aby tato množina byla vykreslena již ve zdrojovém Cabri obrázku před jeho vystavením na web pomocí CabriJavy.

Obr 5. Změna výchozí situace přináší aktuální překreslení množiny bodů.

Poznamenejme ještě, že originální Cabri obrázek, který je uložen na webovském serveru, k němuž jsme se připojili, je nám rovněž k dispozici. Můžeme si jej stáhnout _ stačí jen využít funkci Stažení obrázku Cabri, která je také umístěna na nástrojové liště. S obrázkem pak můžeme dále pracovat s využitím všech nástrojů Cabri _ máme-li je ovšem na svém počítači instalováno.

Příklady, na nichž jsme CabriJavu popisovali v tomto článku, byly záměrně z geometrického hlediska velmi jednoduché. Přínos popisované metody pochopitelně roste s náročností prezentované látky.


Tvorba vlastních WWW stránek s CabriJava aplety. Jak na to?

Tento rychlokurs je věnován těm, kdo chtějí aktivně vytvářet webovské stránky ilustrované dynamickými geometrickými obrázky. Jakmile prohlížeč natáhne WWW stránku, objeví se vymezený prostor, ve kterém se bude odehrávat dynamická geometrie. Do tohoto "okna" pak směřuje výstup apletu. Jeho základem je obrázek uložený v souboru s příponou .fig, který jsme před tím vytvořili programem Cabri. Program Cabri a jeho zvládnutí je proto nezbytnou podmínkou pro tvorbu obrázků. Zbývá už jen integrovat obrázek do WWW stránky ve formě CabriJava apletu. K tomu stačí provést následující posloupnost kroků:

  1. Vytvořte obrázek pomocí  Cabri II _ můžete použít verze pod Windows, DOS nebo MacOS.

  2. Vytvořte WWW stránku s doprovodným textem.

  3. Abyste si mohli práci vyzkoušet na svém počítači, stáhněte si poslední verzi souboru  CabriJava.jar (http://www-cabri.imag.fr/cabrijava/CabriJava.jar) a umístěte jej do toho adresáře, v němž máte uloženy i Cabri obrázky. Archív CabriJava.jar obsahuje všechny soubory  CabriJavy v komprimované podobě.

  4. Do zdrojového kódu WWW stránky přidejte následující řádky (pouze tučné řádky jsou povinné!):

<APPLET CODE="CabriJava.class" archive="CabriJava.jar" WIDTH=600 HEIGHT=400>
<PARAM NAME=file VALUE=".../jmeno_obrazku.fig">
<PARAM NAME=lang VALUE="cs">
<PARAM NAME=border VALUE=3>
<PARAM NAME=background VALUE=".../pozadi.jpg">
</APPLET>

Jakmile prohlížeč najde ve zdrojovém kódu párový příznak <APPLET>, nahraje zadaný aplet z webovského serveru a spustí jej. Zmíněný příznak umožňuje předávat informace o apletu (název, velikost vyhrazeného prostoru, umístění vzhledem k ostatnímu textu apod.).

Programátoři píší zdrojový kód apletu v jazyce Java (soubory s příponou .java), vytvořené soubory zkompilují překladačem Javy a obdrží binární soubory s příponou .class (tzv. třídy Javy), na které se pak odkazuje ve zdrojovém kódu webovské stránky. My se však o tvorbu tříd nemusíme starat, pro naše speciální geometrické účely nám totiž vše připravili již profesionálové v Grenoblu, odkud jsme si potřebné třídy stáhli (soubor CabriJava.jar).

Závěrem se seznámíme s některými parametry Javy obecně a CabriJavy speciálně a vysvětlíme si jejich význam.

Pro zadávání charakteristik apletu můžete použít i moderní HTML editory (např. volně šiřitelný FrontPage Express), pomocí nichž lze aplet specifikovat velice snadno a rychle.

Podívejme se na další nepovinné, ale velice užitečné rozšiřující parametry CabriJavy, které souvisejí s funkcemi již zmíněné nástrojové lišty:

<PARAM NAME="autocontrol" VALUE="true">

<PARAM NAME="trace" VALUE="point 10">

<PARAM NAME="spring" VALUE="point 6 size 38,-12">

<PARAM NAME="step " VALUE="triangle 10">

Tímto parametrem určujeme zobrazené stádium rozpracovanosti konstrukce. Setkali jsme se s tím třeba u příkladu č. 2, kde prvním zobrazeným objektem byl trojúhelník, ačkoliv ve zdrojovém Cabri obrázku byly provedeny i následující kroky konstrukce kružnice opsané).

<PARAM NAME="loop" VALUE="true">

*) tyto interní identifikátory objektů se zobrazují při stisku ALT, je-li zobrazena nástrojová lišta a ukážeme-li současně kurzorem na objekt nebo pružinu

Poděkování G. Kuntzovi _ tvůrci CabriJavy _ za poskytnutí informací a materiálů, které pomohly k napsání tohoto textu a A. Vrbovi za významnou pomoc při tvorbě článku.

 

Reference

[1] Kuntz, G.: Dynamic Geometry and the World Wide Web: http://www.cabri.net/~kuntz/INET98/

[2] Oficiálná stránka CabriJavy: http://www.cabri.net/cabrijava/

[3] Poslední verze souboru CabriJava.jar: http://www-cabri.imag.fr/cabrijava/CabriJava.jar

[4] Vrba, A.: Oživlá geometrie, MFI roč. 10 (2000), č. 2 a 3

[5] Javovská nadstavba Sketchpadu: http://forum.swarthmore.edu/dynamic/java_gsp/

[6] Javovská nadstavba Sketchpadu: http://www.keypress.com/sketchpad/java_gsp/index.html

[7] Oficiální stránka Javy společnosti Sun: http://java.sun.com/

[8] Grand, M.: Java 1.1 Referenční příručka jazyka, 2. vydání. Computer Press, 1998.