Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 1
Programowanie:
grafika w SciLab
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 2
Plan zajęć 1. Wprowadzenie 2. Wykresy 2-D 3. Wykresy 3-D 4. Rysowanie figur geometrycznych
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
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...
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 8
Wykresy 2-D – cd plot2di(x,y,)
➔
i
- określa styl wykresu (możliwe wartości: brak, 2, 3, 4)
➔
x
- wektor argumentów
➔
y
- wektor wartości funkcji
➔
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
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 1 0
Ćwiczenie - 2 Wykonaj ćwiczenie – zwróć uwagę na składnię
//************************************************** Wektory których -->t=(1:0.1:8)'; składowe -->xset("font",2,3); są wektorami -->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');
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
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');
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 1 2
Ćwiczenie – 2 – cd Wyniki:
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 1 4
Ćwiczenie – 3 - cd Wyniki:
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 1 5
Ćwiczenie – 4 Wykonaj wykres następującej funkcji:
2
x t =r⋅cost⋅1−2⋅sin t 2 y t =r⋅sin t⋅12⋅cos t D={t :t ∈− ,} ➔
nazwij oś argumentów 'x(t)'
➔
nazwij oś wartości funkcji 'y(t)'
➔
zatytułuj wykres 'Krzywa w postaci parametrycznej – CORNOID'
➔
dodaj legendę
➔
przyporządkuj linii typ -1 (style=-1)
➔
dodaj siatkę – polecenie xgrid()
!!
Funkcja 2D zadana w postaci PARAMETRYCZNEJ Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
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)');
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 1 7
Ćwiczenie – 4 - cd Wyniki:
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 1 9
Ćwiczenie – 5 Wykonaj wykres następującej funkcji:
3
r =4⋅a⋅cos /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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
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");
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 2 1
Ćwiczenie – 5 – cd Wyniki:
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 ) i uzyskaj więcej informacji na temat funkcji plotframe()
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 2 6
Ćwiczenie – 7 – cd Wyniki:
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 2 7
Ćwiczenie – 8 Wykonaj wykres następującej funkcji:
z x , y=sin xcos y D={ x ; y: x∈− ,∧ y∈− ,} ➔
nazwij osie
➔
zatytułuj wykres 'Powierzchnia 3-D'
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
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'); Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Zwróć uwagę na tworzenie macierzy z Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 2 9
Ćwiczenie – 8 – cd Wyniki:
!! Wykonaj Cw. 7 i 8 z wykorzystaniem funkcji fplot3d Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 3 0
Ćwiczenie - 9 Wykonaj wykres następującej funkcji:
x p1, p2 = p1 sin p1 cos p 2 y p1, p2 = p1 cos p1 cos p2 z p1, p2 = p1 sin p 2 D={ x ; y : p1 ∈0,10∧ p2 ∈0,10}
!! Powierzchnia 3D zadana we WSPÓŁRZĘDNYCH PARAMETRYCZNYCH Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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)";.. "z=p1.*sin(p2)"]) [Xf,Yf,Zf]=eval3dp(scp,p1,p2); plot3d(Xf,Yf,Zf)
!! Zwróć uwagę na sposób liczenia x, y, z Dowiedz się do czego służy funkcja eval3d Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 3 2
Ćwiczenie – 9 – cd Wyniki:
!! Wykonaj Cd. 9 zastepując definicję funkcji scp wykorzystując składnię 'function ... endfunction' Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
Slajd 3 4
Ćwiczenie – 10 Wykonaj wykres następującej funkcji:
xt =t⋅sin t y t =t⋅cost t⋅∣t∣ z 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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
15 grudzie ń 2008
Programowanie: grafika w SciLab
Slajd 3 6
Ćwiczenie – 10 – cd Wyniki:
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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 ABY UZYSKAĆ WIĘCEJ INFORMACJI (z poziomu sesji SciLab !!! )
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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ń
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.
Programowanie: grafika w SciLab
15 grudzie ń 2008
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)
Instytut K onstrukcji Budowlanych
Zakład K omputerowego Wspomagania Projektowania
Informatyka S tosowana S e m e s tr 1.