Thao tác với đồ thị

Một phần của tài liệu Tin học chuyên ngành cho khoa cơ điện lập trình tính toán trong Matlab ppt (Trang 48 - 53)

- clf: Xoá nội dung của Figure hiện tại delete Figure (Number): Xoá Figure

3.Thao tác với đồ thị

MatLab cho phép khai báo gócđểtừ đó có thểquan sátđược đồthịtrong không gian 3 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. “Azimuth” 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.50 từ phía người quan sát, “Elevation” là góc mà tạiđó mắt người quan sát thấyđược mặt phẳng x-y. Sửdụng hàm view cho phép người quan sát có thểquan sát hình vẽtừ các gócđộkhác nhau.

Ví dụ: >>view(-50,0)

* 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. 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 kết quả giống nhau.

Một công cụkhác cũng rất hữu dụng với việc quan sátđồthị không gian 3 chiều là hàm rotate3d. Các thông sốAzimtuh và elevation có thể được tác động bởi chuột, lệnh rotate3d on cho phép chuột can thiệp, còn rotate3d off không cho phép.

Lệnh Hidden dấu các nét khuất.Khi ta vẽ đồthị, một sốphần

của nó bịche khuất bởi các phần khác nên chỉcó thểnhìn thấy phầnởtrong tầm nhìn. Nếu chuyểnđến hidden off, ta có thểthấy phần khuất đó qua mạng lưới. Mặc nhận là hidden on.

VD1: >>mesh(peaks(20)+7)

>>title (‘Mesh with hiden on’) % có che khuất VD2: >>mesh(peaks(20)+7)

>>hidden off % khong che khuất >>title(‘Mesh with Hidden Off’)

VD3: >>mesh(peaks(20)+7) >>view(-40,0)

4. Cácđặc điểm khác và các hàm vẽ đồthịkhác trong không

gian 3 chiều

*Hàm ribbon (x, y)tượng tựnhưplot(x,y) ngoại trừcột

của y được vẽnhưlà một dải riêng biệt trong không gian 3 chiều.

t=[-3:0.2:2] s=sin(t) ribbon(t,s)

* Hàm clabel tăng thêmđộcao chođồthị đường viền.Có ba mẫu clabel(cs), clabel(cs, V), clabel(cs, ‘manual’). trong đó cs là cấu trúcđường viềnđược trảvềtừlệnh contour, cs = contour(z), lấy nhãn tất cảcácđồthị đường viền với độcao của nó. Vịtrí của nhãnđược lấy ngẫu nhiên. clabel(c,’manual’) định vịphần nhãnđường viềnởvịtrí kích chuột tương tựnhưlệnh ginput. Nhấn phím return kết thúc việc tạo nhãn này.

* Hàm contourf sẽvẽmộtđồthị đường viền kín, không gian giữađường viền lấpđầy bằng màu

x = -7.5: 0.5: 7.5; y = x; [X, Y] = meshgrid(x,y); R = sqrt(X.^2 + Y.^2)+eps; Z = sin(R)./R; contourf(X,Y,Z)

* Hai hàm meshc, meshz : meshc vẽđồthị lưới và thêm đường viền bên dưới, meshz vẽđồthị lưới và đồthịcó dạng nhưmàn che. meshc(X,Y,Z)

meshz(X,Y,Z)

* Hàm waterfall được xem nhưmesh ngoại trừmộtđiều là hàm mesh chỉxuất hiệnởhướng x.

waterfall(X,Y,Z)

* Hai hàm surfc và surfvex: surfc vẽmộtđồthịdạng surf và thêm

đường bao bên dưới; surfvex vẽmộtđồthịsurf nhưng thêm vào sự

chiếu sáng bềmặt từnguồn sáng.

Cấu trúc tổng quát là surflvex(X, Y, Z, S, K) trongđó X, Y, Z tương tự nhưsurf, S là một vector tuỳchọn trong hệtoạ độdecac (S = [Sx Sy Sz]) hoặc trong toạ độcầu (S=[az,el]) chỉra hướng của nguồn sáng. Nếu không khai báo, giá trịmặcđịnh của S là 450 theo chiều kimđồng hồtừvịtrí người quan sát, S là một vector tuỳchọn chỉra phầnđóng góp tuỳtheo nguồn sáng bao quanh, sựphản chiếu ánh sáng và hệsố phản chiếu (K=[ka, kd, ks, spread])

VD: >>colormap (gary) >>surfc (peaks)

* Hàm fill3, phiên bản 3 chiều của fill, vẽmộtđa giácđều

trong không gian 3 chiều, khuôn dạng tổng quát của nó là

fill3(x, y, z, c), trongđó chiềuđứng củađa giácđược chỉ bởi 3 thành phần x, y, z. Nếu c là một kí tự, đa giác sẽ được lấpđầy màu như bảng màu, c cũng có thểlà một vector hàng có 3 thành phần ([r g b]) trongđó r, g, b là các giá trịgiữa 0 và 1 thay cho các màuđỏ, xanh lá cây và xanh da trời. Nếu c là một vector hoặc ma trận, nóđược sử dụng nhưmột chỉsốchỉra sơ đồmàu. Nhiềuđa giác có thể được tạo ra bằng cách cho thêm nhiềuđối sốnhư fill3(x1, y1, z1, c1, x2, y2, z2, c2, …).

Ví dụ1:

>>fill3(rand(3, 4), rand(3, 4), rand(3, 4)) Ví dụ2: x = -7.5: 0.5: 7.5; y = x; [X, Y] = meshgrid(x,y); R = sqrt(X.^2 + Y.^2)+eps; Z = sin(R)./R; fill3(X,Y,Z,'y')

* Các hàm bar3 và bar3h là phiên bản 3 chiều của bar và barh. bar3(x,y) ; bar3h(x,y) ;

* Hàm pie3 là phiên bản 3 chiều của pie pie3(x)

Ví dụ: x1=1:5; y1=x1;

bar3(x1,y1) bar3h(x1,y1)

5. Bảng màu

Bóng của magenta và yellow spring

Bóng của xanh lá cây và xanh da trời winter Bóng củađỏvà vàng autumn Bóng của xanh lá cây và vàng summe Ngọc xanh biển -83 1 - 4 9 màu của nét vẽ lines Đỏ đồng -40 -62 1 màu xanh tím cool Đỏtối 0 0 -5 có màu sắc lắng kính prism Xám trung bình -5 -5 -5

sựthayđổi màu bão hoà jet lam xám 1 1 0 xen kẽ đỏ, trắng, xanh da trời vàđen flag Tímđỏ 1 0 1 trắng hoàn toàn white vàng 0 1 1 màu hồng nhạt nhẹ pink Xanh da trời 1 0 0 sắc thái của màuđồng copper Xanh lá cây 0 1 0

xám có pha nhẹvới màu xanh bone Đỏ 0 0 1 xám cân bằng tuyến tính gray Trắng 1 1 1 đen -đỏ– vàng – trắng hot Đen 0 0 0

Giá trịmàu bão hoà hsv Màu Xanh da trời xanh lá cây Đ ỏ Mô tảbảng màu Function Bảng màu 6 Sửdụng bảng màu

*Câu lệnh colormap (M)càiđặt ma trận M như là bảng màu được sửdụng bởi hình hiện tại.

VD: colormap (cool).

Hàm plot và plot3 không dùng bảng màuởtrên, chúng sử

dụng các màu liệt kê trong bảng kiểuđường, điểmđánh dấu,

màu của plot. Phần lớn các hàm vẽkhác nhưmesh, surf,

contour, fill, pcolor và các biến của nó, sửdụng bảng màu

hiện tại.

VD: >>[x, y, z] = peak(30); >>surf(x, y, z, atan2(x,y)) >>colormap(hsv), shading flat >>axis([-3 3 –3 3 –6.5 8.1]), axis off >>title (‘using a color Argument to surf’)

Một phần của tài liệu Tin học chuyên ngành cho khoa cơ điện lập trình tính toán trong Matlab ppt (Trang 48 - 53)