Podstawy Informatyki 1 Laboratorium 10 1. Cel ćwiczenia Ćwiczenie ma na celu praktyczne przedstawienie grafiki 3D. 2. Wprowadzenie Grafika trójwymiarowa jest to przedstawienie na płaszczyźnie ekranu monitora rzutów figur trójwymiarowych. Matlab zawiera specjalne procedury do obsługi grafiki typu 3D. Rzutowanie elementów figur trójwymiarowych na płaszczyznę ekranu oraz zasłanianie niewidocznych krawędzi wykonuje system. Standardowo figury te są rzutowane prostopadle, ale istnieje możliwość wykorzystania przekształceń perspektywicznych. Funkcja Matlaba [X, Y] = meshgrid (x, y) przekształca wektory x i y w parę macierzy X i Y, które mogą być użyte do znajdowania wartości funkcji dwóch zmiennych i generowania trójwymiarowych wykresów. Wiersze wynikowej macierzy X są kopiami wektora x, kolumny wynikowej macierzy Y są kopiami wektora y, jak to ilustruje przykład niżej: x = 1:10, y = 21: 25 x = y = 21 22 23 24 25 [X,Y] = meshgrid(x,y) X = Y = 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 25 25 25 Funkcje grafiki trójwymiarowej mesh(x,y,z) - funkcja rysuje trójwymiarową powierzchnie w postaci siatki o oczkach w kolorze tła; powierzchnię opisaną przez macierze X,Y,Z. [X,Y] = meshgrid(-3:.125:3); Z = peaks(x,y); mesh(x,y,z);
Podstawy Informatyki 2 meshc(x,y,z) - jest połączeniem mesh i contour, tzn. rysuje siatkę taką samą jak mesh i umieszcza pod nią wykres poziomicowy. [X,Y] = meshgrid(-3:.125:3); Z = peaks(x,y); meshc(x,y,z); meshz(x,y,z) - funkcja rysuje wielokolorową siatkę, z tym, że od krawędzi wykresu rysowane są w dół płaszczyzny odniesienia. [X,Y] = meshgrid(-3:.125:3); Z = peaks(x,y); meshz(x,y,z) surf(x,y,z) - rysuje powierzchnię opisaną przez macierze X,Y,Z, w postaci kolorowej siatki o oczkach wypełnionych odpowiednimi kolorami zależnymi od zmiennej Z. [X,Y,Z] = peaks(30); surf(x,y,z)
Podstawy Informatyki 3 surfc(x,y,z) - rysuje powierzchnię opisaną przez macierze X,Y,Z, w postaci kolorowej siatki o oczkach wypełnionych odpowiednimi kolorami zależnymi od zmiennej Z, z wykresem poziomicowym pod spodem. [X,Y,Z] = peaks(30); surfc(x,y,z) surfl(x,y,z) - rysuje powierzchnię opisaną przez macierze X,Y,Z, w postaci kolorowej siatki o oczkach wypełnionych odpowiednimi kolorami zależnymi od zmiennej Z, z uwzględnieniem odbić światła. [x,y] = meshgrid(-3:1/8:3); z = peaks(x,y); surfl(x,y,z); shading interp axis([-3 3-3 3-8 8]) linspace(x1,x2) - funkcja generuje domyślnie 100 liczb z przedziału x1 do x2. linspace(x1,x2,n) - funkcja generuje wierszowy wektor N liczb rozłożonych równomiernie na przedziale x1 do x2. Przykład 1, wprowadź następujący kod [x,y]=meshgrid(-2:0.1:2,-2:0.1:2); z=peaks(x,y); mesh(x,y,z); colorbar; Przyciskiem Rotate 3D i lewym przyciskiem myszki poobracaj powierzchnię.
Podstawy Informatyki 4 Przykład 2 Kolejno wprowadź [x,y]=meshgrid(-3:0.2:3, -3:0.2:3); z=sinh(x).*cosh(x/2).*log(abs(y)+0.75); surf(x,y,z); Przykład 3 x = linspace(-1,1,20); y = x; [X Y] = meshgrid(x,y); R =sin(x.^2 + Y.^2); Z = sin(3.*r); mesh(x,y,z); Zadania Zad1 Narysować wykres funkcji z =exp(- x 2 - y 2 ) w dziedzinie będącej kołem a nie prostokątem. Wykres powinien wyglądać tak jak poniżej.
Podstawy Informatyki 5 Można zacząć następująco: t = linspace(0,2*pi); r = linspace(0,2,50); [T,R] = meshgrid(t,r);... Zad 2. Narysować wykres funkcji z =1+ x 2 + y 2, użyć funkcji surf(),contour(). Można zacząć następująco t = linspace(0,2*pi,20); r = linspace(0,2,20); [T,R] = meshgrid(t,r);. Zad 3. Wczytywanie danych a) Proszę zaimportować dane z pliku Drop.txt. b) Proszę obliczyć średnią mean i standartowe odchylenie std dla prawdopodobieństwa odrzucenia. Zad 4. Proszę stworzyć funkcję, która oblicza wartość średnią oraz odchylenie standartowe prawdopodobieństwa odrzucenia dla różnych, pojedynczych, wartości: File number, rho lub B. Proszę wykorzystać możliwość odwołania się do danych w postaci data(data(:,2)==1,4). Funkcja może działać następująco [a,b]=cw2(2,0.45,data) średnia = 0.0135
Podstawy Informatyki 6 odchylenie = 0.0156 a = 0.0135 b = 0.0156 Zad 5. Narysować wykres trójwymiarowy a) Proszę napisać funkcję, która dla ustalonego numeru pliku generuje wykres 3D prawdopodobieństwo odrzucenia w funkcji rho i B. Proszę wykorzystać funkcje: meshc, unique, zeros, surface z parametrami 'FaceColor', 'interp', 'EdgeColor', 'none'. b) Proszę stworzyć opis funkcji, jaki wyświetli się po wpisaniu help nazwa_fukcji. Taki help to wyświetlenie zakomentowanych linii (linii zaczynających się od %) poprzedzających słowo function. c) Proszę opisać osie wykorzystując fukcje xlabelx, ylabel, zlabel, proszę nie zapomnieć o formatowaniu opisu FontSize, HorizontalAlignment, VerticalAlignment, Interpreter. d) Otrzymany wykres proszę zapisać w formacie Matlaba.fig oraz w innym wybranym formacie. Funkcja może się uruchamiać w następujący sposób >> cw3(21,data)