abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:11 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Komunita

    V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Nová verze

    Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    včera 12:22 | Pozvánky

    Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.

    jose17 | Komentářů: 0
    včera 04:44 | IT novinky

    Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevily v únicích dat a případně se nechat na další úniky upozorňovat.

    Ladislav Hagara | Komentářů: 15
    19.5. 23:22 | Zajímavý software

    Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 7
    19.5. 22:22 | Zajímavý software

    V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    19.5. 13:11 | Zajímavý článek

    Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."

    Ladislav Hagara | Komentářů: 1
    19.5. 12:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    19.5. 12:33 | Nová verze

    Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (60%)
     (23%)
     (9%)
     (2%)
     (0%)
     (0%)
     (6%)
    Celkem 47 hlasů
     Komentářů: 5, poslední včera 20:57
    Rozcestník

    Octave - 13 (dokončení grafiky)

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

    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 ITBiz: Halucinace balíčků při programování AI
    Týden na ITBiz: DeepSeek nic nemění, umělá inteligence vyžaduje obrovské investice do cloudové infrastruktury
    Týden na ScienceMag.cz: Komplexní modely AI prý zpochybňují Occamovu břitvu

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

    Týden na ITBiz: Když umělá inteligence lže, jsou důvěra a ochranná opatření ještě důležitější
    Týden na ITBiz: Halucinace balíčků při programování AI
      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.