Geometrické modelování tvaru ptačích vajíček
Bonus: Návod na sestavení animace
K sestavení animace z předchozí stránky stačí znalosti práce s programem Macromedia Flash 8 Professional a následující stručný návod:
Nejdříve otevřeme nový projekt s prázdnou animací, nastavíme její rozměry na 640px horizontálně a 480px vertikálně a barvu pozadí na stejnou, jaké je pozadí stránky. Teď uvažujme naše rozvržení:
- potřebujeme 4 snímky (1 pro zadávání dat, další pro výpočet parametrů, další na vykreslení aproximační křivky pro dané vajíčko a poslední pro zobrazování chyb,
- dále potřebujeme ve snímku pro vykreslování vajíčka 4 různé vrstvy (do spodní umístíme elipsu, do další obdélník, který zakryje její část, pak pro vykreslení paraboly a do horní vsrtvy umístíme osy, popisky a tlačítka).
První snímek pro zadávání dat bude obsahovat:
- textová políčka uprostřed předefinujeme na typ Dynamic text a do Value postupně vložíme a,b,c,
- dolní textové políčko převedeme na objekt typu Button
- a do jeho Action script napíšeme vzroce pro výpočet parametru p paraboly a jejích průsečíků s elipsou (modifikované pro vstupní hodnoty):
- on (release) {
- if ((a>0) and (b>0) and (b-c>c)) {
- p=(b-c)-Math.sqrt((b-c)*(b-c)-c*c))/(a*a/2);
- ix=(b-c)-Math.sqrt((b-c)*(b-c)-c*c);
- iy=(a*Math.sqrt(2*c*c+2*(b-c)*Math.sqrt((b-c)*(b-c)-c*c)-2*(b-c)*(b-c)))/(2*c)
- gotoAndStop(2);
- }
- else {
- gotoAndStop(4);
- }
- }
- zároveň dochází ke kontrole chyb. Když je vše v pořádku, spočítají se hodnoty a skočíme na snímek 2, když ne, pak na snímek 4 obsahující chybové hlášení.
- Do Action script pro tento snímek napíšeme skript pro zastavení animace:
Druhý snímek bude obsahovat:
- textová políčka uprostřed opět předefinujeme na typ Dynamic text a do Value postupně vložíme p,ix,iy,
- tlačítko pro vykrelení grafu, kde zatím definujeme ve skriptu měřítko pro vykreslování jendotlivých křivek:
- on (release) {
- lupa=Math.min(250/a,500/b);
- gotoAndStop(3);
- }
- a tlačítko pro změnu vstupních hodnot se skriptem:
Třetí snímek bude obsahovat:
- ve spodní vrstvě elipsu se skriptem:
- onClipEvent(enterFrame) {
- _x=320-_root.lupa*_root.c;
- _y=251-_root.lupa*_root.a/2;
- _width=2*_root.lupa*_root.c;
- _height=_root.lupa*_root.a;
- }
- v další vrstvě obdélník s šířkou 640px a výškou 250px umístěný 100px od horního okraje celé animace a skriptem:
- onClipEvent(enterFrame) {
- _x=320+_root.lupa*_root.ix;
- }
- v další vrstvě parabolu (vytvořenou jako přímku a uprostřed deformovanou na parabolu - bézierova křivka stupně 2), se skriptem:
- onClipEvent(enterFrame) {
- _x=320+_root.lupa*_root.ix;
- _y=251-_root.lupa*_root.iy;
- _width=_root.lupa*(_root.b-_root.c-_root.ix);
- _height=2*_root.lupa*_root.iy;
- }
- zbytek, tedy osy, popisky a tlačítka, budou v horní vrstvě,
- tlačítko pro skok zpět obsahující skript:
- on (release) {gotoAndStop(2);}
- a tlačítko pro změnu vstupních hodnot se skriptem:
- on (release) {gotoAndStop(1);}
Poslední snímek bude obsahovat:
- hlášení o možných chybách
- a tlačítko pro skok zpět obsahující skript:
- on (release) {gotoAndStop(1);}
Celý hotový zdrojový soubor si můžete stáhnout zde.
← předchozí obsah následující →