3d-grafiikkaa
Contents
http://math.aalto.fi/~apiola/matlab/opas/lyhyt/grafiikka.html#sec:3d
clear close all x=-2:.1:2; y=x; % x-ja y-akselin diskretoinnit tässä samoja. [X,Y]=meshgrid(x,y); % X ja Y määräävät xy-alueen hilapisteistön. size(X), size(Y)
ans =
    41    41
ans =
    41    41
Z=exp(-X.^2-Y.^2); % Korkeusmatriisin arvot hilapisteissä. % Huomaa "pisteittäiset" laskutoimitukset. surf(x,y,Z) % surf-funktio "asettaa maton % sauvametsän päälle".
 figure contour(x,y,Z) % Korkeuskäyräpiirros axis equal
 ezcontour(@(x,y)exp(-x.^2 - y.^2),[-2 2 -2 2]) % "easycontour" Tassa ei tarvita meshgridiä. axis equal
Mita meshgridissa tapahtuu? Katsotaan pienillä datoilla.
close all
x=0:3
y=-2:0
[X,Y]=meshgrid(x,y)
x =
     0     1     2     3
y =
    -2    -1     0
X =
     0     1     2     3
     0     1     2     3
     0     1     2     3
Y =
    -2    -2    -2    -2
    -1    -1    -1    -1
     0     0     0     0
X:ssa x-sarakkeita y:n pituuden verran vierekkain Y:ssa y-riveja x:n pittuden verran allekkain
Jonoutetaan kumpikin pitkiksi sarakkeiksi:
Hilan vastinkoordinaatit asettuvat paikalleen.
[X(:) Y(:)] plot(X(:),Y(:),'*') axis off shg
ans =
     0    -2
     0    -1
     0     0
     1    -2
     1    -1
     1     0
     2    -2
     2    -1
     2     0
     3    -2
     3    -1
     3     0
 Muista: plot(X,Y) piirtää samankokoisten matriisien vastinsarakkeet.
plot(X,Y) hold on plot(X',Y') shg % Niinpä koordinaattiristikko syntyy tälläkin tavalla näppärästi.
 Napakoordinaatistoon, pinta ympyräalueen päällä
clf t=linspace(0,2*pi,30); r=linspace(0,1,10); X=r'*cos(t);Y=r'*sin(t); % Ulkotulot: (pysty_v)*(vaaka_v) mesh(X,Y,zeros(size(X))) % Nollataso shg
 figure
Z=1./(sqrt(X.^2+Y.^2));
surf(X,Y,Z)
hold on
surf(X,Y,5*ones(size(Z)))
shg