abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    17.4. 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (20%)
    Celkem 563 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Octave - 13 (dokončení grafiky)

    26. 4. 2006 | Jiří Poláček | Programování | 8015×

    Třírozměrná grafika, sombrera, plata vajíček a tuning grafů.

    Třírozměrná grafika

    Současné možnosti třírozměrného grafického výstupu v Octave se omezují na jednoduché drátěné modely, které mohou reprezentovat plochu funkce dvou proměnných - pro představu si můžeme vykreslit sombrero známé z matematické analýzy:

    >> sombrero(15)
    
    Ukázka třírozměrného grafu - sombrero

    Pro vykreslování se používá příhodně pojmenovaná funkce mesh. Jejími parametry jsou vektory x-ových a y-ových souřadnic a matice z-ových souřadnic pro všechny průsečíky x-ových a y-ových souřadnic. Pokusme se tuto komplikovanou definici vysvětlit na příkladě - nejdříve si připravme x-ové a y-ové souřadnice:

    >> x=1:3;
    >> y=1:2;
    >> [xx, yy] = meshgrid(x, y)
    xx =
      1  2  3
      1  2  3
    yy =
      1  1  1
      2  2  2
    

    Výstupem funkce meshgrid jsou dvě matice, které dohromady dávají všechny možné průsečíky x-ových a y-ových souřadnic v půdorysu třírozměrného grafu - jeden průsečík je dán prvky ze stejných pozic výsledných matic. Třetí parametr funkce mesh - matice z-ových souřadnic - musí být stejně velká jako tyto výsledné matice, obecně tedy platí, že musí mít tolik řádků, kolik je y-ových souřadnic, a tolik sloupců, kolik prvků obsahuje vektor x-ových souřadnic:

    >> z=[4 2 7; 2 5 9];
    >> mesh(x,y,z)
    
    Jednoduchý síťový graf

    Abychom byli přesní - prvními dvěma parametry funkce mesh mohou být jak souřadnice (průsečíky si funkce dopočítá sama pomocí meshgrid), tak přímo matice průsečíků, které mohou být libovolné, nikoliv jen v přísně ortogonální síti:

    >> a=[1 5 6; 1 3 7]; b=[2 3 1; 6 3 5];
    >> mesh(a,b,z)
    
    Graf s neortogonální soustavou průsečíků

    Pokud nyní vyvstává dotaz, k čemu nám jako uživateli je funkce meshgrid, když ji mesh používá interně, odpoví nám následující příklad:

    x=y=linspace(-2*pi,2*pi,50);
    [xx,yy]=meshgrid(x,y);
    mesh(x,y,sin(xx)+cos(yy))
    
    Plato na vajíčka

    V případě tohoto plata na vajíčka je matice z dána funkčním předpisem, kde jako proměnné figurují průsečíky.

    Více grafů v jednom okně

    Octave podporuje (za předpokladu podpory i ze strany gnuplotu) vykreslování více grafů v jednom okně - nejedná se o nic jiného, než o umístění grafů do matice stanovené velikosti. Funkce multiplot režim vykreslování více grafů do jednoho okna zapíná, jejími parametry jsou počty grafů, které mají být pod sebou a vedle sebe. Funkce mplot pak vykresluje grafy stejným způsobem jako plot s tím rozdílem, že automaticky mění pozici v okně, kam se má graf vykreslit:

    x=linspace(-pi, pi, 200);
    multiplot(2,2);
    mplot(x, sin(x), 'b;sinus x;');
    mplot(x, atan(x), '7;arkus tangens x;');
    mplot(x, log(x), '9;log x;');
    mplot(x, cos(x), 'g;kosinus x;');
    
    Více grafů v jednom okně

    Přesnou pozici, kam se má v okně vykreslit další graf, lze zadat funkcí subwindow, parametry jsou řádkový a sloupcový index počítaný z levého horního rohu - do okna tak můžeme vykreslit i grafy, které nelze vykreslit příkazem plot (například histogram či třírozměrný graf). Funkce subplot je kombinací funkcí multiplot a subwindow - má tři parametry, z nichž první dva udávají počet grafů v okně a třetí pak pozici - zde se počítá zleva doprava a pak shora dolů.

    Pro doplnění zmiňme funkci figure - pokud grafy vykreslujeme v terminálu x11 (což je výchozí nastavení, viz dále), můžeme pracovat s více okny, jejichž číslo se udává jako parametr této funkce, tj. například první volání figure(10) otevře nové okno s číslem 10 a učiní jej aktivním; pokud po té vytvoříme (a tudíž aktivujeme) jiná okna, tak další volání figure(10) opět zaktivní okno s číslem 10.

    Tuning grafů s gnuplotem

    Jak již bylo řečeno dříve, grafický výstup v Octave obstarává program gnuplot, což v závislosti na různých verzích programů a kompilačních parametrech s sebou nese různá úskalí. Pro bližší seznámení s gnuplotem můžeme na tomto místě odkázat na obsáhlou nápovědu či seriál článků v češtině, zde zmíníme jen pár užitečných rad.

    Řada příkazů gnuplotu je v Octave přímo přístupných se stejnou syntaxí a jménem pozměněným tím způsobem, že na začátek je přidáno písmeno „g“, například gplot či gsplot pro kreslení dvou a třírozměrných grafů. Tyto příkazy jsou klasifikovány jako nízkoúrovňové, nicméně pro pořádné využití grafického výstupu v Octave se bez nich neobejdeme.

    Prakticky všechny vlastnosti grafického výstupu lze nastavit s pomocí příkazu gset následovaného popisem, co se vlastně má nastavit - například gset mouse zajistí, že výchozí výstupní terminál x11 (tj. ono jednoduché grafické okno pro vykreslovaní grafů) bude interaktivní, s grafem pak lze dělat předepsané úkony pomocí klávesových zkratek (kupříkladu zobrazení vodících čar; klávesa „h“ vyvolá nápovědu), třírozměrné grafy lze otáčet s pomocí myši atd.

    Výstupních terminálů je podporována celá řada, může jím být (na základě dostupnosti ovladačů v systému) i tiskárna či plotter, obrázek (různé vektorové i bitmapové formáty), postskript, PDF, LaTeX atd. Ke změně terminálu se používá dvojice příkazů gset terminal a gset output - obrázky doplňující tento text byly generovány do formátu PNG následující dvojicí příkazů:

    gset terminal png size 360,270;
    gset output 'grafXYZ.png';
    

    Pozor - v současné době je možné se setkat s instalacemi gnuplotu, které jsou linkovány buď s knihovnou libpng (starý způsob, méně funkcí) nebo s knihovnou gd (nový způsob, více možností nastavení). Druhý způsob umožňuje zejména pracovat s libovolným fontem české znaky nevyjímaje:

    gset terminal png font "/usr/X11/lib/X11/fonts/luxirr.ttf" 16;
    
    Graf s vlastním fontem

    V případech, kdy chceme mít v grafu více výstupů z kreslících příkazů, může generování do nějakého souboru zlobit - osvědčuje se nachystat si výslednou podobu grafu v terminálu x11 a po té graf sekvencí příkazů gset output, gset terminal a replot zkopírovat do požadovaného souboru.

    V grafu z příkladu si také povšimněte desetinné čárky - ačkoliv jsme v Octave nuceni používat desetinnou tečku, naše grafy lze přizpůsobit národním tradicím jednoduchým nastavením:

    >> gset decimalsign ',';
    

    Pro třírozměrné grafy je nepostradatelný příkaz gset view, který nastavuje úhel pohledu na vykreslovaný graf. Jeho čtyři parametry nastavují otočení okolo osy x (0-180°), otočení okolo osy z (0-360°), měřítko celého grafu a měřítko pouze osy z. Výchozími hodnotami pro měřítko jsou čísla 1, které lze chápat jako 100% velikost. Pár pohledů:

    >> gset view
    >> gshow view
            view is 60 rot_x, 30 rot_z, 1 scale, 1 scale_z
    >> gset view 30, 340, 1.2, 1.3
    >> gset view 20, 0, 1.1, 0.8
    
    Výchozí úhel pohledu Jiný úhel pohledu Ještě jiný úhel pohledu

    Příkaz gset view bez parametrů nastavuje výchozí úhel pohledu, gshow prozradí, jak je aktuálně vybraný parametr nastaven. Speciálním pohledem je mapa - gset view map - která zapříčiní projekci grafu do půdorysu, tj. pohled shora - viz příklad u třírozměrné grafiky.

    Poznámka na konec - poslední verze Octave označují nízkoúrovňové příkazy gnuplotu jako zastaralé a varují před jejich používáním. Varování se lze vyhnout používáním interních názvů těchto příkazů ve formě __gnuplot_plot__ či __gnuplot_set__ (podtržítka jsou součástí příkazu).

    Nejčtenější články posledního měsíce

    Týden na ScienceMag.cz: Přišli s novým nápadem, jak poznat, zda text napsala umělá inteligence
    Událo se v týdnu 12/2024
    Týden na ITBiz: Americká vláda poskytne Intelu téměř 20 miliard dolarů na podporu výroby čipů v USA

    Nejkomentovanější články posledního měsíce

    Týden na ScienceMag.cz: Přišli s novým nápadem, jak poznat, zda text napsala umělá inteligence
      všechny statistiky »

    Seriál Octave (dílů: 16)

    Octave - 1 (je to kalkulačka) (první díl)
    <—« Octave - 12 (měřítko os a speciální grafy)
    »—> Octave - 14 (finance a statistika)
    Octave - 16 (a co dál?) (poslední díl)

    Související články

    Octave - 1 (je to kalkulačka)
    Octave - 2 (počítání s maticemi)
    Octave - 3 (přístup k jednotlivým položkám matice)
    Octave - 4 (je to pravda?)
    Octave - 5 (práce s řetězci)
    Octave - 6 (práce se soubory)
    Octave - 7 (vlastní skripty a funkce)
    Octave - 8 (větvení programu)
    Octave - 9 (cykly)
    Octave - 10 (zbylé řídicí struktury)
    Octave - 11 (kreslíme grafy)
    Octave - 12 (měřítko os a speciální grafy)
    Octave - 14 (finance a statistika)
    Octave - 15 (špetka matematiky)
    Octave - 16 (a co dál?)
    Vektorový elegán Ipe
    Recenze: Kniha kódů a šifer
    Awk & sed: Příručka pro dávkové zpracování textu
    SETI@home
    Jak se píše procesor
    GnuCash - domácí účetnictví na úrovni
    Použití gnuplot pro tvorbu grafů v PHP
    Hra s písmenky - wxMaxima

    Odkazy a zdroje

    Octave

    Další články z této rubriky

    LLVM a Clang – více než dobrá náhrada za GCC
    Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
    Reverzujeme ovladače pro USB HID zařízení
    Linux: systémové volání splice()
    Programování v jazyce Vala - základní prvky jazyka
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    18.5.2006 20:52 asym | skóre: 5 | blog: Psychopat
    Rozbalit Rozbalit vše Re: Octave - 13 (dokončení grafiky)
    me to gset mouse proste nepomaha, porad nemohu tocit 3d grafem
    Kdo nemá rád linux, ten si ho nezaslouží.
    1.6.2006 18:56 miro | skóre: 19 | blog: miro
    Rozbalit Rozbalit vše Problem s nastavenim vystupu
    Zdravim,

    skusam graficky vystup do png, ale po zadani
    gset terminal png
    dostanem chybovu hlasku
    octave:1> gset terminal png parse error:
    
      syntax error
    
    >>> gset terminal png
                     ^
    
    Gnuplot mam nainstalovany, prikaz
    set terminal png
    v nom funguje. Pouzivam Octave 2.9.5, Gnuplot 4.0

    Nestretli ste sa nahodou niekto s podobnym problemom? Dakujem za pomoc.
    21.6.2006 10:26 miro | skóre: 19 | blog: miro
    Rozbalit Rozbalit vše Re: Problem s nastavenim vystupu
    __gnuplot_set__
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.