Updatesofts.com Ebook Team
137 chơng 18
Đồ hoạ
trong không gian 3 chiều
MATLAB cung cấp một số hàm để hiển thị dữ liệu 3 chiều nh các hàm vẽ đờng
thẳng trong không gian 3 chiều, các hàm vẽ bề mặt và và khung dây và màu có thể đợc sử
dụng thay thế cho chiều thứ t.
18.1 Đồ thị đ
18.1 Đồ thị đ18.1 Đồ thị đ
18.1 Đồ thị đờng thẳng.
ờng thẳng.ờng thẳng.
ờng thẳng.
Lệnh
plot
plotplot
plot
từ trong không gian hai chiều có thể mở rộng cho không gian 3 chiều bằng
lệnh
plot3
plot3plot3
plot3
ylabel
. Tơng tự nh vậy,
lệnh
axis
axisaxis
axis
cũng có khuôn dạng:
axis ( [xmin xmax ymin ymax zmin zmax ] )
axis ( [xmin xmax ymin ymax zmin zmax ] )axis ( [xmin xmax ymin ymax zmin zmax ] )
axis ( [xmin xmax ymin ymax zmin zmax ] )
thiết lập giới
hạn cho cả 3 trục. Ví dụ :
>> axis('ij') % thay đổi hớng trục từ sau ra trớc
Updatesofts.com Ebook Team
138
Hình 18.2
Hàm
text
text text
text
cũng có khuôn mẫu nh sau:
: :
:
text ( x, y, z, string )
text ( x, y, z, string )text ( x, y, z, string )
text ( x, y, z, string )
sẽ đặt vị trí xâu string
vào toạ độ x, y, z.
Sau đây là một ví dụ về cách dùng hàm
meshgrid.
meshgrid.meshgrid.
meshgrid.
>> x = -7.5:.5:7.5;
>> y = x;
>> [X,Y] = meshgrid(x,y);
X, Y là một cặp của ma trận tơng ứng một lới chữ nhật trong mặt phẳng x-y. Mọi hàm
z=f(x,y) có thể sử dụng tính chất này.
>> R = sqrt(X.^2+Y.^2)+eps;
>> % find the distance from the origin (0,0)
>> Z = sin(R)./R; % calculate sin(r)/ r
Updatesofts.com Ebook Team
139
Ma trận R chứa bán kính của mỗi điểm trong [X,Y], nó là khoảng cách từ mỗi điểm
đến tâm ma trận. Cộng thêm
eps
epseps
eps
ị
) trong không gian ba chiều.
mesh
meshmesh
mesh
cũng có thể vẽ một ma trận đơn tơng tự nh-
với một đối số;
mesh(Z)
mesh(Z)mesh(Z)
mesh(Z)
, sử dụng các điểm (i,j,Z
ị
). Nh vậy Z đợc vẽ ngợc lại với các chỉ
số của nó, trong trờng hợp này
mesh(Z)
mesh(Z)mesh(Z)
mesh(Z)
chỉ đơn giản là chia lại độ khắc các trục x, y theo
các chỉ số của ma trận Z. Bạn hãy thử tạo ví dụ cho trờng hợp này?.
Đồ thị bề mặt của cùng một ma trận Z trông nh đồ thị lới trớc đó, ngoại trừ khoảng
cách giữa hai đờng là khác nhau (gọi là patchs)
patchs)patchs)
patchs). Đồ thị loại này dùng hàm
surf,
surf,surf,
surf,
nó có tất cả
các đối số nh hàm
Hình 18.5Hình 18.5
Hình 18.5
Đồ thị đờng viền cho ta thấy đợc độ nâng hoặc độ cao của hình. Trong MATLAB đồ thị
đờng viền trong không gian hai chiều tơng tự nh trong không gian ba chiều nhng hàm
gọi của nó là contour3
contour3contour3
contour3. Đồ thị sử dụng các lệnh sẽ đợc minh hoạ trong bảng khắc màu.
Updatesofts.com Ebook Team
141
18.3 Thao t
18.3 Thao t18.3 Thao t
18.3 Thao tác với đồ thị
ác với đồ thịác với đồ thị
ác với đồ thị MATLAB cho phép bạn khai báo góc để từ đó quan sát đợc đồ thị trong không gian
ba chiều. Hàm
view(azimuth, elevation )
view(azimuth, elevation ) view(azimuth, elevation )
view(azimuth, elevation )
thiết lập góc xem bằng việc khai báo
azimuth
nhau. Ví dụ nếu
elevation
elevationelevation
elevation
thiết lập là âm, thì
view
viewview
view
sẽ nhìn hình từ phía dới lên. Nếu
azimuth
azimuthazimuth
azimuth
thiết lập dơng, thì hình sẽ quay ngợc chiều kim đồng hồ từ điểm nhìn mặc định.Thậm chí
bạn có thể nhìn trực tiếp từ trên bằng cách thiết lập
view(0,90 )
view(0,90 )view(0,90 )
view(0,90 )
. Thực ra thì đây là điểm nhìn
mặc định 2 chiều, trong đó x tăng từ trái qua phải, và y tăng từ trên xuống dới, khuôn dạng
view(2)
view(2)view(2)
view(2)
hoàn toàn giống nh mặc
định của
view(0, 90 )
view(0, 90 )view(0, 90 )
view(0, 90 )
, và
view(3)
view(0, 0 )view(0, 0 )
view(0, 0 )
cho các kết quả nh nhau. Các thông số
azimuth
azimuthazimuth
azimuth
và
elevation
elevationelevation
elevation
mà bạn
đang quan sát có thể lấy lại đợc bằng cách dùng
[az, e] =
[az, e] = [az, e] =
[az, e] = view
viewview
view
. Vídụ:
>> view([-7 -9 7])
>> [az,el] = view
az =
-37.8750
el =
31.5475
Một công cụ hữu dụng khác là quan sát đồ thị không gian 3 chiều bởi hàm
rotate3d.
rotate3d. rotate3d.
rotate3d.
hidden
hiddenhidden
hidden
dấu các nét khuất. Khi bạn vẽ đồ thị, thì một số phần của nó bị che khuất
bởi các phần khác, khi đó nếu dùng lệnh này thì các nét khuất sẽ bị dấu đi, bạn chỉ có thể
nhìn phần nào ở trong tầm nhìn của bạn. Nếu bạn chuyển đến
hidden off
hidden offhidden off
hidden off
, bạn có thể thấy
phần khuất đó qua mạng lới. Dới đây là ví dụ:
>> mesh(peaks(20)+7)
>> hold on
>> pcolor(peaks(20))
>> hold off
>> title('Mesh with hiden on')