cwiczenia6 3d id 124973 Nieznany

background image

1

Wszelkie prawa do zada

ń

, plików i instrukcji s

ą

zastrze

ż

one, nikt poza prowadz

ą

cymi zaj

ę

cia i studentami IA na AGH nie ma prawa ich

wykorzystywa

ć

. A tych co maj

ą

takie prawa, prosz

ę

, aby nie umieszczali ich w innym miejscu w sieci.

Grafika 3D

Prosz

ę

, aby ka

ż

de zadanie było rozwi

ą

zane w innym skrypcie.

Wszystkie skrypty i funkcje maj

ą

by

ć

zapisane w dowolnym folderze nale

żą

cym

do Pa

ń

stwa.

cz

ęść

I – funkcja plot3


plot3(x,y,z)
rysuje funkcje np. w postaci parametrycznej, przy czym x, y, z – s

ą

to wektory o takim

samym rozmiarze (wszystkie wektory maj

ą

mie

ć

tyle samo elementów).

Zad1. Prosz

ę

przekopiowa

ć

tre

ść

poni

ż

szego skryptu na swój komputer.


figure(1)
t=0:.1:12; x=t; y=sin(t); z=cos(t);
plot3(x,y,z)
grid

on

;

W drugim oknie prosz

ę

narysowa

ć

ten sam wykres, ale dla zrównanych jednostek

na osiach, za pomoc

ą

powy

ż

szych polece

ń

oraz polecenia

axis equal
Wykorzystuj

ą

c edytor wła

ś

ciwo

ś

ci oraz przegl

ą

dark

ę

obiektów

prosz

ę

opisa

ć

osie „x”, ”y” i „z”.

Zad 2. Oto współrz

ę

dne punktów: x = [1 1 -1 1]; y = [4 4 4 4]; z = [-1 1 1 -1];

Prosz

ę

narysowa

ć

trójk

ą

t, który powstanie z powy

ż

szych punktów, czerwon

ą

lini

ą

o grubo

ś

ci 6

(…'LineWidth',6).

cz

ęść

II – wykresy 3D

siatki powierzchni
i powierzchnie

2.1

Funkcja meshgrid i mesh

Funkcja meshgrid

[X , Y] = meshgrid (x, y) przekształca wektory x i y w macierze X i Y, po to, aby powstała
siatka punktów, które u

ż

ywamy 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.

Funkcja mesh

mesh (X, Y, Z) rysuje szkielet siatki

background image

2

Zad 3. Prosz

ę

stworzy

ć

skrypt, który zawiera poni

ż

sze polecenia:

clear

all

x=-5:5;
y=-10:10;
[X, Y]=meshgrid(x,y)

Prosz

ę

sprawdzi

ć

jak została wygenerowana siatka X i Y, a potem wstawi

ć

; po poleceniu

[X, Y]=meshgrid(x,y);

I wykorzystuj

ą

c powy

ż

sz

ą

siatk

ę

punktów prosz

ę

narysowa

ć

wykres funkcji:

݂ሺݔ, ݕሻ = ܺ

+ 3ܻܺ

+ 12ܻܺ

W drugim oknie dla tych samych danych prosz

ę

narysowa

ć

powierzchni

ę

za pomoc

ą

polecenia surf(X,Y,Z). Prosz

ę

doło

ż

y

ć

wska

ź

nik colorbar do obu okien.

Funkcja surf(X,Y,Z) – rysuje powierzchni

ę

kolorow

ą

opisan

ą

przez macierze X,Y,Z.

2.2. Rysowanie siatki powierzchni za pomoc

ą

: mesh(x,y,z), meshc(x,y,z) - meshz(x,y,z)

i waterfall(x,y,z)

Zad 4. Dla nast

ę

puj

ą

cych danych: x=0:0.5:10;y=0:.5:5; z=sin(y)'*cos(x);

w jednym oknie i na 4 wykresach prosz

ę

narysowa

ć

funkcje

mesh(x,y,z), meshc(x,y,z) -

meshz(x,y,z) i waterfall(x,y,z). Korzystaj

ą

c z poni

ż

szej tabelki prosz

ę

opisa

ć

wykresy poprzez

dodanie tytułów.

mesh

Wykres siatkowy

meshc Wykres siatkowy + poziomice

meshz Wykres siatkowy + zasłony na ko

ń

cach

ribbon Wykres wst

ąż

kowy

surf

Wykres powierzchniowy

surfc

Wykres powierzchniowy + poziomice

surfl

Wykres powierzchniowy + cieniowanie

waterfall

funkcja waterfall(x, y, z, c) działa podobnie jak meshz z ta ró

ż

nic

ą

,

ż

e nie

rysuje linii odpowiadaj

ą

cych kolumnom macierzy

2.2. Rysowanie powierzchni za pomoc

ą

: surf, surfc, surfl

Zad 5. Dla nast

ę

puj

ą

cych danych: x=0:0.5:10;y=0:.5:5; z=sin(y)'*cos(x);

a)

w pierwszym oknie na 3 wykresach prosz

ę

narysowa

ć

funkcje surf, surfc, surfl

b)

w dugim oknie na trzech wykresach dla surf prosz

ę

sprawdzi

ć

jak działa przejrzysto

ść

alpha

background image

3

ustawiaj

ą

c w kolejnych oknach alpha(0) alpha(0.5) i alpha(1). Prosz

ę

sprawdzi

ć

te

ż

ukrywanie kraw

ę

dzi:

hidden on

Wyświetlanie ukrytych krawędzi

hidden off

Domyślny, ukrywa niewidoczne krawędzie


c)

w trzecim oknie sterujemy kolorem i wy

ś

wietlaniem siatki oraz kolorem powierzchni

za pomoc

ą

instrukcji:

surf(x,y,z,'FaceColor',[0.5 0.5 0.5], 'EdgeColor','red')
surf(x,y,z,'FaceColor','blue', 'EdgeColor','none')

–prosz

ę

sprawdzi

ć

jak działa dodatkowo

camlight left ( mo

ż

e zamiast left lepiej b

ę

dzie:

headlight, left, right

lighting phong (phong, flat, gouraud, none)

je

ś

li nie wida

ć

zmian, prosz

ę

zmieni

ć

kolor siatki i powierzchni

d)

w czwartym oknie

ć

wiczymy cienie - potrzebujemy do tego trzy wykresy funkcji

z=x*exp(-x

2

-y

2

), pierwszy jest na rysunku poni

ż

ej:

drugi wykres powinien by

ć

narysowany za pomoc

ą

funkcji:

surfl(x,y,z), a trzeci mie

ć

dodatkowo doło

ż

on

ą

do surfl(x,y,z) funkcj

ę

shading interp;

shading flat

Powierzchnia z dyskretnymi kolorami

shading interp

Powierzchnia z wypełnieniem kolorami interpolowanymi

shading faceted

Powierzchnia z dyskretnymi kolorami i siatka

e)

w pi

ą

tym oknie zobaczymy jakie s

ą

mo

ż

liwo

ś

ci wy

ś

wietlania poziomic. Znowu podzielimy

okno na 4 wykresy. Bazowym wykresem niech b

ę

dzie

:


x=0:0.1:10;y=0:.1:5; z=sin(y)'*cos(x); meshc(x,y,z)

background image

4

Korzystaj

ą

c z polecenia:

contour(x,y,z,n) – kre

ś

lenie poziomic (wykres konturowy), gdzie n – liczba poziomic

prosz

ę

wykre

ś

li

ć

3 poziomice

i w kolejnym okienku trzy poziomice opisane:

[c,h]=contour(x,y,z,n)
clabel(c,h);

Prosz

ę

sprawdzi

ć

jak działa polecenie contourf(x,y,z,5), w ostatnim, czwartym wykresie.


cz

ęść

IV – dodatkowe wykresy w grafice 3D

bar3, ribbon


Zad 6. Dowoln

ą

funkcj

ę

3D prosz

ę

przedstawi

ć

za pomoc

ą

polecenia

ribbon(Y,Z)

Zad 7. Dla wylosowanych danych Y=round(rand(10,4)*100) na trzech ró

ż

nych wykresach prosz

ę

sprawdzi

ć

jak działa:

bar3(Y,

'detached'

)

bar3(Y,

'grouped'

)

bar3(Y,

'stacked'

) W ka

ż

dym wykresie prosz

ę

zmieni

ć

domy

ś

lny punkt obserwacji

view

Zmiana domy

ś

lnego punktu obserwacji

view(azymut, elewacja)

Okre

ś

la punkt obserwacyjny za pomoc

ą

azymutu i

elewacji

view([x,y,z])

Okre

ś

la punkt obserwacji w układzie kartezja

ń

skim

view(2)

Obserwacja azymut=0, elewacja=90

view(3)

Domy

ś

lny punkt obserwacji: azymut=-37.5 ,

elewacja= 30

cz

ęść

V – animacje

funkcja comet(x,y); - to animacja ruchu komety. x,y – to współrz

ę

dne poło

ż

enia.

Zad 8. Prosz

ę

napisa

ć

skrypt, w którym za pomoc

ą

animacji mo

ż

emy zobaczy

ć

ruch

komety po torze, który jest elips

ą

.

Funkcje getframe i movie, to kolejny przykład animacji. Ka

ż

de polecenie plot generuje

nowe okno, zawarto

ść

tego okna mo

ż

na przy pomocy polecenie getframe zapisa

ć

np.: w tablicy.

Utworzone tablice odtwarzamy wykorzystuj

ą

c polecenie movie. Jako przykład wykorzystania tych

funkcji podaje si

ę

poni

ż

szy skrypt :

for k = 1:16

background image

5

plot(fft(eye(k+16)))
axis equal
M(k) = getframe;
end
movie(M,30)

Zad 9. Prosz

ę

napisa

ć

skrypt, w którym za pomoc

ą

animacji mo

ż

emy zobaczy

ć

kolejne

etapy rysowania funkcji sinus.

Przy braku pomysłu na rozwi

ą

zanie prosz

ę

przej

ś

c do

kolejnego zadania, jest tam ukryta podpowied

ź

.

drawnow – aktualizacja okna

Zad 10. Oto przykład rysowania funkcji przy pomocy polecenia drawnow

x = -2*pi:pi/20:2*pi;
for i=1:8
plot(x(1:i*10),cos(x(1:i*10)))
axis([-2*pi 2*pi -1 1])
drawnow
pause(0.1)
end;


Prosz

ę

wykorzystuj

ą

c dranow narysowa

ć

dowolny wykres funkcji oraz dowoln

ą

powierzchni

ę

.

cz

ęść

VI – walec, kula, wielok

ą

t, elipsoida

cylinder

Generacja walca

elipsoid

Generacja elipsoidy

(nie działa w pracowni)

fill3

Generacja wielok

ą

ta

( nie działa w pracowni)

sphere

Generacja kuli

Zad 11. Prosz

ę

wygenerowa

ć

figury podane w powy

ż

szej tabeli i za pomoc

ą

polecenia slice

przeci

ąć

dwie z tych figur dowoln

ą

płaszczyzn

ą

.


Wyszukiwarka

Podobne podstrony:
Fizjologia Cwiczenia 11 id 1743 Nieznany
Biologia Cwiczenia 11 id 87709 Nieznany (2)
cwiczenie 14 id 125164 Nieznany
8 Cwiczenia rozne id 46861 Nieznany
cwiczenia wzrost id 155915 Nieznany
cwiczenie III id 101092 Nieznany
Cwiczenie 5B id 99609 Nieznany
Cwiczenie nr 8 id 99953 Nieznany
cwiczenie 05 id 125057 Nieznany
F Cwiczenia, cz 3 id 167023 Nieznany
cwiczenie 52 id 41325 Nieznany
Cwiczenie 01 id 98935 Nieznany
Cwiczenie 12 id 99084 Nieznany
CWICZENIE 3 temat id 99386 Nieznany
CwiczenieArcGIS 02 id 125937 Nieznany
cwiczenia 09 id 124345 Nieznany
Cwiczenia czytania id 98475 Nieznany
cwiczenie 11 id 125145 Nieznany

więcej podobnych podstron