Programowanie: grafika w SciLab Slajd 1 Programowanie: grafika w SciLab
Programowanie: grafika w SciLab Slajd 2 Plan zajęć 1. Wprowadzenie 2. Wykresy 2-D 3. Wykresy 3-D 4. Rysowanie figur geometrycznych
Programowanie: grafika w SciLab Slajd 3 Wprowadzenie Grafika w SciLab to: wykresy dwuwymiarowe, wykresy trójwymiarowe, animacje, wizualizacja wyników obliczeń inżynierskich MES, możliwość tworzenia graficznego interfejsu dla programów, praca w kilku oknach, wydruki, eksport do pliku...
Programowanie: grafika w SciLab Slajd 4 WYKRESY uwagi ogólne Przystępując do rysowania wykresów należy Podjąć decyzje, czy wykres jest 2D czy 3D Wybrać odpowiednią funkcję SciLab'a w zależności od sposobu opisu funkcji (np. - współrzędne kartezjańskie - biegunowe biegunowe -opis parametryczny...)!! Kompletny opis dostępnych funkcji POMOC ---> Graphics - graphics library overview
Programowanie: grafika w SciLab Slajd 5 Wykresy 2-D plot(x,y,[xcap,ycap,caption]) x - wektor argumentów y - wektor wartości funkcji xcap - opis osi x ycap - opis osi y caption - opis wykresu!! Nawias kwadratowy [...] w każdej z funkcji SciLab'a oznacza argumenty opcjinalne
Programowanie: grafika w SciLab Slajd 6 Ćwiczenie - 1 Wykonaj wykres następującej funkcji: f x =sin x D f ={x : x 2,2 } nazwij oś argumentów 'argumenty' nazwij oś wartości funkcji 'wartości' zatytułuj wykres 'mój pierwszy wykres'!! Każdy wykres (2D, 3D) zbydowany jest ze skończonej liczby punktów ( (x,y), (x,y,z) ) połączonych ze sobą odcinkami prostymi
Programowanie: grafika w SciLab Slajd 7 Ćwiczenie - 1 cd -->x=[-2*%pi:0.1:2*%pi]; -->y=sin(x); -->plot(x,y,'argumenty','wartosci','moj pierwszy wykres')!! Wektory x i y muszą mieć ten sam wymiar
Programowanie: grafika w SciLab Slajd 8 Wykresy 2-D cd plot2di(x,y,<options>) i - określa styl wykresu (możliwe wartości: brak, 2, 3, 4) x - wektor argumentów y - wektor wartości funkcji <options> style - styl linii wykreślanej funkcji rect - zakres osi [xmin,ymin,xmax,ymax] logflag - skala osi (liniowa/logarytmiczna) frameflag - modyfikacja zakresu osi axesflag - 'gęstość' opisu osi liczbowych leg - legenda
Programowanie: grafika w SciLab Slajd 9 Wykresy 2-D cd xtitle(xtit,[xax,yax,encad]) polecenie to służy do opisywania wykresów 2-D i 3-D xtit - tytuł ogólny wykresu xax - opis osi x yax - opis osi y endcad - opcjonalna ramka wokół tytułu
Programowanie: grafika w SciLab Slajd 1 0 Ćwiczenie - 2 Wykonaj ćwiczenie zwróć uwagę na składnię //************************************************** -->t=(1:0.1:8)'; -->xset("font",2,3); -->subplot(2,2,1); -->plot2d([t t], [1.5+0.2*sin(t) 2+cos(t)]); -->xtitle('plot2d - Linia przerywana'); //************************************************** -->subplot(2,2,2); -->plot2d(t, [1.5+0.2*sin(t) 2+cos(t)], logflag='ll'); -->xtitle('plot2d -Skala logarytmiczna'); Wektory których składowe są wektorami
Programowanie: grafika w SciLab Slajd 1 1 Ćwiczenie - 2 Wykonaj ćwiczenie zwróć uwagę na składnię //************************************************** -->subplot(2,2,3); -->plot2d2(t, [1.5+0.2*sin(t) 2+cos(t)]); -->xtitle('plot2d2 - Schodkowy'); //************************************************** -->subplot(2,2,4); -->plot2d3(t, [1.5+0.2*sin(t) 2+cos(t)]); -->xtitle('plot2d3 - Slupkowy');
Programowanie: grafika w SciLab Slajd 1 2 Ćwiczenie 2 cd Wyniki:
Programowanie: grafika w SciLab Slajd 1 3 Ćwiczenie 3 Wykonaj ćwiczenie zwróć uwagę na składnię -->xmax=5; -->t=0:0.1:xmax; -->u=[-0.8+sin(t);-0.6+sin(t);-0.4+sin(t);-0.2+sin(t);sin(t)]; -->u=[u;0.2+sin(t);0.4+sin(t);0.6+sin(t);0.8+sin(t)]'; -->plot2d(t,u,style=[-9,-8,-7,-6,-5,-4,-3,-2,-1,0])!! Kod skryptu wykonywany jest linia po lini
Programowanie: grafika w SciLab Slajd 1 4 Ćwiczenie 3 - cd Wyniki:
Programowanie: grafika w SciLab Slajd 1 5 Ćwiczenie 4 Wykonaj wykres następującej funkcji: nazwij oś argumentów 'x(t)' nazwij oś wartości funkcji 'y(t)' zatytułuj wykres 'Krzywa w postaci parametrycznej CORNOID' dodaj legendę x t =r cos t 1 2 sin 2 t y t =r sin t 1 2 cos 2 t D={t :t, } przyporządkuj linii typ -1 (style=-1) dodaj siatkę polecenie xgrid()!! Funkcja 2D zadana w postaci PARAMETRYCZNEJ
Programowanie: grafika w SciLab Slajd 1 6 Ćwiczenie 4 - cd -->t=(-%pi:0.05:%pi);r=2; -->x=r*cos(t).*(1-2*sin(t)^2); -->y=r*sin(t).*(1+2*cos(t)^2); -->plot2d(x,y,style=-1,leg='corn'); -->xgrid(2); -->xtitle('cornoid','x(t)','y(t)');
Programowanie: grafika w SciLab Slajd 1 7 Ćwiczenie 4 - cd Wyniki:
Programowanie: grafika w SciLab Slajd 1 8 Wykresy 2-D cd Opisywanie grafiki: titlepage() - dodanie opisu na środku okna xstring() - dodanie opisu w dowolnym miejscu okna plotframe() - utworzenie ramki rysunkowej
Programowanie: grafika w SciLab Slajd 1 9 Ćwiczenie 5 Wykonaj wykres następującej funkcji: r =4 a cos 3 /3 D={ : 3,3 } skorzystaj z funkcji polarplot() skorzystaj z funkcji titlepage() i nazwij okno 'KARDIOIDA' przy pomocy funkcji xstring() dodaj napis 'Współrzędne biegunowe'!! Funkcja 2D zadana we WSPÓŁRZĘDNYCH BIEGUNOWYCH
Programowanie: grafika w SciLab Slajd 2 0 Ćwiczenie 5 cd -->t=(-3*%pi:0.01:3*%pi);a=1; -->r=4*a*cos(t/3)^3; -->titlepage("kardioida"); -->polarplot(t,r); -->xclea(-2.8,2.5,2.5,1); -->xstring(-2.8,2,"wspolrzedne biegunowe");
Programowanie: grafika w SciLab Slajd 2 1 Ćwiczenie 5 cd Wyniki:
Programowanie: grafika w SciLab Slajd 2 2 Ćwiczenie 6 Wykonaj następujące czynności: wczytaj plik /pub/programy/plotframe.sci porównaj uzyskany wykres z zawartością pliku skorzystaj z pomocy (help <polecenie>) i uzyskaj więcej informacji na temat funkcji plotframe()
Programowanie: grafika w SciLab Slajd 2 3 Wykresy 3-D - powierzchnie plot3d(x,y,z,[theta,alpha,leg,flag,ebox]) x,y - wektory zmiennych niezależnych z - macierz wartości theta, alpha - kąt widzenia wykesu leg - legenda X@Y@Z (opis rozdzielany znakiem @) flag - flag=[mode,type,box] ebox - ustawia zakres wykresu gdy type=1!! Wektory x i y mogą mieć różne wymiary
Programowanie: grafika w SciLab Slajd 2 4 Ćwiczenie 7 Wykonaj wykres następującej funkcji: z x, y =sin x cos y D={ x ; y : x, y, } nazwij osie zatytułuj wykres 'Powierzchnia 3-D'!! Powierzchnia 3D zadana we współrzędnych kartezjańskich
Programowanie: grafika w SciLab Slajd 2 5 Ćwiczenie 7 cd -->x=(-%pi:0.1:%pi); -->y=(-%pi:0.1:%pi); -->z=sin(x)'*cos(y); -->plot3d(x,y,z,35,45,'x@y@z',[2,2,4]) -->xtitle('powierzchnia 3-D'); Macierz z tworzy się 'automatycznie' dzięki wykorzystaniu iloczynu macierzowego - porównaj z Cw. 8!!
Programowanie: grafika w SciLab Slajd 2 6 Ćwiczenie 7 cd Wyniki:
Programowanie: grafika w SciLab Slajd 2 7 Ćwiczenie 8 Wykonaj wykres następującej funkcji: z x, y =sin x cos y D={ x ; y : x, y, } nazwij osie zatytułuj wykres 'Powierzchnia 3-D'
Programowanie: grafika w SciLab Slajd 2 8 Ćwiczenie 8 cd x=(-%pi:0.1:%pi); y=(-%pi:0.1:%pi); lx=length(x); ly=length(y); for i=1:lx for j=1:ly z(i,j)=sin(x(i))+cos(y(j)); end end!! plot3d(x,y,z,35,45,'x@y@z',[2,2,4]) xtitle('powierzchnia 3-D'); Zwróć uwagę na tworzenie macierzy z
Programowanie: grafika w SciLab Slajd 2 9 Ćwiczenie 8 cd Wyniki:!! Wykonaj Cw. 7 i 8 z wykorzystaniem funkcji fplot3d
Programowanie: grafika w SciLab Slajd 3 0 Ćwiczenie - 9 Wykonaj wykres następującej funkcji: x p 1, p 2 = p 1 sin p 1 cos p 2 y p 1, p 2 = p 1 cos p 1 cos p 2 z p 1, p 2 = p 1 sin p 2 D={ x ; y : p 1 0,10 p 2 0,10 }!! Powierzchnia 3D zadana we WSPÓŁRZĘDNYCH PARAMETRYCZNYCH
Programowanie: grafika w SciLab Slajd 3 1 Ćwiczenie 9 - cd p1=linspace(0,0.2*%pi,10); p2=linspace(0,0.2*%pi,10); deff("[x,y,z]=scp(p1,p2)",["x=p1.*sin(p1).*cos(p2)";.. "y=p1.*cos(p1).*cos(p2)";.. [Xf,Yf,Zf]=eval3dp(scp,p1,p2); plot3d(xf,yf,zf) "z=p1.*sin(p2)"])!! Zwróć uwagę na sposób liczenia x, y, z Dowiedz się do czego służy funkcja eval3d
Programowanie: grafika w SciLab Slajd 3 2 Ćwiczenie 9 cd Wyniki: Wykonaj Cd. 9 zastepując definicję funkcji scp wykorzystując składnię 'function... endfunction'!!
Programowanie: grafika w SciLab Slajd 3 3 Wykresy 3-D - krzywe przestrzenne param3d(x,y,z,[theta,alpha,leg,flag,ebox]) x,y,z - współrzędne punktów krzywej 3-D theta, alpha - kąt widzenia wykesu leg - legenda X@Y@Z (opis rozdzielany znakiem @) flag - flag=[mode,type,box] ebox - ustawia zakres wykresu gdy type=1
Programowanie: grafika w SciLab Slajd 3 4 Ćwiczenie 10 Wykonaj wykres następującej funkcji: x t =t sin t y t =t cos t z t = t t 50 D={t :t 50,50 } nazwij osie zatytułuj wykres 'Krzywa 3-D w postaci parametrycznej'!! Krzywa przestrzenna zadana we WSPÓŁRZĘDNYCH PARAMETRYCZNYCH
Programowanie: grafika w SciLab Slajd 3 5 Ćwiczenie 10 cd -->t=(-50*%pi:0.1:50*%pi); -->x=t.*sin(t); -->y=t.*cos(t); -->z=t.*abs(t)/(50*%pi); -->param3d(x,y,z,45,60,'x(t)@y(t)@z(t)'); -->xtitle('krzywa 3-D w postaci parametrycznej');!! Zwróć uwagę na sposób tworzenia WEKTORÓW x, y, z
Programowanie: grafika w SciLab Slajd 3 6 Ćwiczenie 10 cd Wyniki:
Programowanie: grafika w SciLab Slajd 3 7 Rysowanie figur geometrycznych Podstawowe komendy do tworzenia grafiki: xsegs() - rysuje odcinek o zadanych współrzędnych końca i początku oraz określonym kolorze xrect() - rysuje kwadrat o zadanych współrzędnych lewego narożnika, szerokości i wysokości (xrects()) xfrect() - rysuje wypełniony prostokąt xpoly() - rysuje łamaną otwartą lub zamkniętą (xpolys()) xfpoly() - rysuje wypełnioną łamaną (xfpolys()) xarrows() - rysuje strzałkę (jedną lub wiele) xarc() - łuk otwarty lub zamknięty (okręgi, elipsy) xfarc() - rysuje wypełnione łuki otwarte bądź zamknięte xclea() - usuwa określony prostokąt UŻYJ help <nazwa-polecenia> ABY UZYSKAĆ WIĘCEJ INFORMACJI (z poziomu sesji SciLab!!! )
Programowanie: grafika w SciLab Slajd 3 8 Ćwiczenie 11 Wykonaj następujące czynności: wczytaj plik /pub/programy/grafika.dem porównuj wydawane polecenia z rezultatem na ekranie
Programowanie: grafika w SciLab Slajd 3 9 Ćwiczenie 12 Wykonaj następujące czynności: z paska menu wybierz Demos -> Graphics, przejrzyj przykłady, zwróć uwagę na ukazującą się składnię poleceń
Programowanie: grafika w SciLab Slajd 4 0 Ćwiczenie 13 Wykonaj następujące czynności: z paska menu wybierz Demos -> Scicos, przejrzyj przykłady (aby uruchomić wybrany przykład z ustawieniami domyślnymi wybierz Simulate -> Run)