Trojrozměrné grafy

Kdysi dávno vyšel v ABC program pro konstrukci trojrozměrných grafů. Možná, že jej znáte. Pokud ne, bylo by myslím na místě o něm říci několik slov.

Nejdříve: musíte si vymyslet, odvodit či jinak zjistit příslušnou funkci. Takovou funkcí může být např z=x+2*y. Jedná se vlastně o předpis, jak vypočítat proměnnou z ze dvou proměnných x a y. Vezmeme-li x a y jako souřadnice bodů v rovině, můžeme z považovat za výšku bodu nad rovinou (či hloubku bodu pod rovinou). Výsledkem je taková nějaká pokřivená, nahnutá či zalomená plocha, kterou lze na obrazovce nakreslit jako síť.

Dosti teorie, přejděme k ovládání programu.

Nejdříve zadáváme nadhled nad rovinou a otočení roviny kolem osy z. Obě hodnoty se zadávají ve stupních a pro obě je nejtypičtější hodnota 30 - 45 stupňů.

Dále zadáme, zda chceme zobrazit směr os (1 je ano, O je ne).

Při zadávání jednotek na osách je nutné si uvědomit, že zobrazujeme obdélníkovou část roviny o rozměrech 16 (ve směru x) x 12 (ve směru y) bodů. Pokud zadáme např. jednotku ve směru x=1 a ve směru y=2, budeme mít na ose x 16 a na ose y 24 bodů ve dvojnásobné hustotě. Pokud používáme ve funkci trigonometrické funkce (např. sin, cos), je důležité vědět, že výpočty probíhají ve stupních a zvolit patřičně velké jednotky. (Velikost z je úměrná velikosti x a y.)

Posunutí počátku je udáváno bez ohledu na jednotky. Pokud chcete počátek posunout doprostřed roviny, zadejte x=8, y=6 a z=0.

čtvereček sítě znamená prostě hustotu sítě. Hodnota 1 vám zajistí síť 16x12, hodnota 0.5 síť 32x24 atd. Zmenšení čtverečku na polovinu znamená ale čtyřnásobnou dobu výpočtů a často vede ke splynutí linií, takže ne vždy platí čím jemější síť, tím lépe.

Dále jen zadáte, zda chcete (1) či nechcete (0) změnit funkci, která je definovaná na ř. 490. Pěkné funkce jsou mimo původní ještě např.:

     z=sin(x+y)+cos(x-y) nebo

     z=cos(sqr(x2+y2))

kde x2 a y2 znamená "na druhou" (nedaří se mi najít příslušný znak) Tato druhá funkce je použita v ukázce.

Pokud budete chtít obrázek vytisknout - pro uživatele BT100 je věc velmi jednoduchá, stačí použít TBASIC s modulem pro BT100 a stisknout pouze OPTION pro hardcopy obrazovky. Jinak si můžete obrázek zapsat na disk, upravit ho např. v Designmasteru a vytisknout příslušnou hardkopírkou. Stačí pouze přidat řádek:

525 IF PEEK (53279)=6 THEN CLOSE#1: OPEN#1,8,0,"D:TGRAF.PIC": BPUT#1,DPEEK(88),7680: CLOSE#1

Potom, pokud stisknete START, uloží se VIDEORAM na disk D1 pod názvem TGRAF.PIC.

Můžete rovněž ještě změnit řádky 140, 250 a 370 na:

140 INPUT "ctverecek, jemnost site";H,HH:CLS :INPUT "chces zadat funkci(1/0)";RTL:CLS :IF RTL=0 THEN 170

250   FOR B=0+SY TO 12+SY STEP HH

370   FOR A=0+SX TO 16+SX STEP HH

Tím zachováte hustotu ("ctverecek") sítě a můžete současně zvýšit jemnost jednotlivých linií.

Na spoustu dalších vylepšení přijdete určitě sami. Přeji Vám krásné obrázky...

JW