Tải bản đầy đủ - 0 (trang)
2 Đồ thị bề mặt và lưưới

2 Đồ thị bề mặt và lưưới

Tải bản đầy đủ - 0trang

144

đánh cá với các mắt lới là các điểm dữ liệu. Đồ thị lới này thờng đợc sử dụng để

quan sát những ma trận lớn hoặc vẽ những hàm có hai biến.

Bớc đầu tiên là đa ra đồ thị lới cđa hµm hai biÕn z = f (x, y ), tơng

ứng với ma trận X và Y chứa các hàng và các cột lặp đi lặp lại. MATLAB cung

cấp hàm meshgrid cho mục đích này. [ X, Y ] = meshgrid(x, y ), tạo một

ma trận X, mà các hàng của nó là bản sao của vector x, và ma trận Y có các cột

của nó là bản sao của vector y. Cặp ma trận này sau đó đợc sử dụng để ớc lợng hàm hai biến sử dùng đặc tính toán học về mảng của MATLAB.

Sau đây là một ví dụ về cách dùng hàm 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

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 để không để xảy ra phép

chia cho 0. Ma trËn Z chøa sine cđa b¸n kÝnh chia cho bán kính mỗi điểm trong

sơ đồ. Câu lệnh sau vẽ đồ thị lới:

>> mesh(X,Y,Z)



Hình 18.3

Đồ thị trên là đơn sắc. Tuy nhiên bạn có thể thay đổi màu sắc với sự trợ

giúp của MATLAB rất rễ dàng nếu bạn đọc đến phần colormaps..



145

Trong ví dụ này, hàm mesh xắp xếp giá trị của các phần tử của ma trận

vào các điểm (Xị,Yị,Zị) trong không gian ba chiều. mesh cũng có thể vẽ một

ma trận đơn tơng tự nh với một đối số; 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) 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). Đồ thị loại này dùng

hàm surf, nó có tất cả các đối số nh hàm mesh. Hãy xem ví dụ dới đây (Hình

18.4):

>> surf(X,Y,Z)



Hình 18.4

Để làm rõ thêm một vài chủ đề, chúng ta cùng quay lại hàm peaks đã đa ra

ở phần trớc. Đồ thị lới trong không gian 3 chiều của hàm này đợc đa ra nh sau

(hình 18.5):

>> mesh(peaks)

>> title('Mesh Plot of Peaks function')



146



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. Đồ thị sử dụng các lệnh sẽ đợc

minh hoạ trong bảng khắc màu.

18.3 Thao tá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 ) thiÕt lËp gãc xem bằng

việc khai báo azimuth và elevation. Elevation mô tả vị trí ngời quan sát,

xem nh là góc đo bằng độ trên hệ trục x-y. Azimut mô tả góc trong hệ trục

nơi ngời quan sát đứng.

Azimuth đợc đo bằng độ từ phần âm trục y. Phía âm trục y cã thĨ quay

theo chiỊu kim ®ång hå mét gãc -37.5 độ từ phía bạn. Elevation là góc mà tại

đó mắt bạn thấy đợc mặt phẳng x-y. Sử dụng hàm view cho phép bạn có thể

quan sát hình vẽ từ các góc độ khác nhau. Ví dụ nếu elevation thiết lập là

âm, thì view sẽ nhìn hình từ phía dới lên. Nếu 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 ). 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) hoàn toàn giống nh mặc

định của view(0, 90 ), và view(3) thiết lập mặc định trong không gian 3

chiều.

Lệnh view có một dạng khác mà rất tiện ích khi sử dụng là view([X,Y,Z ])

cho phép bạn quan sát trên một vector chứa hệ trục toạ độ decac trong không

gian 3 chiều. Khoảng cách từ vị trí bạn quan sát đến gốc toạ độ không bị ảnh

hởng. Ví dụ, view([0 10 0 ]), view([0 -1 0 ]) vµ view(0, 0 ) cho các kết

quả nh nhau. Các thông số azimuth và elevation mà bạn đang quan sát có thể

lấy lại đợc bằng c¸ch dïng [az, e] = view. VÝdơ:



147

>> 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. Các thông số Azimtuh và elevation có thể đợc tác động bởi chuột,

rotate3d on cho phép chuột can thiệp, rotate3d of không cho phép.

Lệnh 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 of, 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')



Hình 18.8

Bây giờ hãy bỏ chế độ dấu các nét khuất đi ta sẽ thÊy sù kh¸c nhau:

>> hidden off

>> title('Mesh with Hidden Off ')



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

2 Đồ thị bề mặt và lưưới

Tải bản đầy đủ ngay(0 tr)

×