Bài giảng Lập trình tính toán Matlab - Chương 4: Đồ họa trong Matlab
4.1 Đồ họa 2D Lệnh plot >> plot(x,y,‘option’) Với: x: vector miền giá trị y: các cột của y với chỉ số tương ứng xác định bởi vector x ‘option’: các tham số về màu sắc, kiểu đường,… của đồ thị
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình tính toán Matlab - Chương 4: Đồ họa trong Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 4
Đồ họa trong Matlab
2 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D
Lệnh plot
>> plot(x,y,‘option’)
Với:
x: vector miền giá trị
y: các cột của y với chỉ số tương ứng xác định bởi
vector x
‘option’: các tham số về màu sắc, kiểu đường, của
đồ thị
3 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Tham số “kiểu đường”:
Tham số Kiểu đường
‘-’ Đường liền nét
‘--’ Đường đứt nét
‘-.’ Đường chấm gạch
‘:’ Đường chấm
4 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Tham số “đánh dấu nét vẽ”:
Tham số Marker
‘.’ Điểm
‘*’ Dấu hoa thị
‘x’ Chữ cái x
‘o’ Chữ cái o
+ Dấu cộng
5 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Tham số “đánh dấu nét vẽ” (tt.):
Tham số Marker
‘s’, ‘square’ Hình vuông
‘d’, ‘diamond’ Hình thoi
‘p’, ‘pentagram’ Hình ngôi sao
‘h’, ‘hexagram’ Hình
6 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Tham số “đánh dấu nét vẽ” (tt.):
Tham số Marker
‘v’ Hình
‘^’ Hình
‘<’ Hình
‘>’ Hình
7 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Tham số “màu sắc”:
Tham số Màu sắc
‘y’, ‘yellow’ Vàng
‘g’, ‘green’ Xanh lá cây
‘b’, ‘blue’ Xanh dương
‘r’, ‘red’ Đỏ
8 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Tham số “màu sắc” (tt.):
Tham số Màu sắc
‘k’, ‘black’ Đen
‘w’, ‘white’ Trắng
‘c’, ‘cyan’ Xanh cyan
‘m’, ‘magenta’ Hồng
9 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Các tham số khác:
Tham số Ý nghĩa
LineWidth Độ rộng của nét vẽ, tính bằng pt
MarkerEdgecolor Màu của đường viền marker
MarkerFacecolor Màu bên trong marker
MarkerSize Kích thước của marker, tính bằng pt
10 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Ví dụ 1: Vẽ đồ thị của hàm sin(x)
>> x = 0:pi/20:2*pi;
>> plot(x,sin(x))
11 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Ví dụ 2: Vẽ đồ thị của hàm sin(x) và x/2 + 1/2
>> x = 0:0.01:2;
>> A=[sin(pi*x);0.5+0.5*x];
>> plot(x,A)
12 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Ví dụ 3: Vẽ đồ thị hàm y và y/2 theo x
>> x = [-4 -2 0 1 3 7];
>> y = [15 4 0 1 9 20];
>> plot(x,y,‘r’); hold on;
>> plot(x,y/2);
13 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh plot (tt.)
Ví dụ 4: Vẽ đồ thị hàm sin(x) với các tham số
>> x = -pi:pi/10:pi;
>>plot(x,y,‘--rs’, ‘LineWidth’,
2, ‘MarkerEdgecolor’,
‘k’, ‘MarkerFacecolor’,
‘g’, ‘MarkerSize’,10)
14 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Lệnh comet
>> comet(x,y,p)
Vẽ theo hàm comet với phần kéo dài p, khi không khai báo
chỉ số p thì chương trình tự lấy giá trị p = 0.1
Lệnh comet cho phép người dùng vẽ theo từng điểm trên
màn hình gây hiệu ứng hoạt họa khi vẽ.
15 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Các hệ tọa độ trong mặc phẳng
Lệnh Hệ tọa độ
polar(thet,r) Vẽ trên hệ tọa độ cực
semilogx(x,y)
Vẽ trên hệ tọa độ của trục loga,
thang đo log10 được sử dụng cho
trục x
semilogy(x,y)
Vẽ trên hệ tọa độ của trục loga,
thang đo log10 được sử dụng cho
trục y
loglog(x,y) Vẽ trên hệ tọa độ loga, 2 trục của hệ
tọa độ đều dựa trên thang log10
16 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Xác định kiểu trục tọa độ
>> axis([xmin xmax ymin ymax])
Các tùy chỉnh:
axis on/off/auto
axis normal/square/equal/tight
axis ij/xy
grid on/off
17 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Xác định kiểu trục tọa độ (tt.)
Ví dụ:
18 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Xác định giới hạn trục tọa độ
>> xlim([xmin xmax])
>> ylim([ymin ymax])
Ví dụ:
>> x = linspace(0,3,500);
>> y = 1./(x-1).^2 + 3./(x-2).^2;
>> plot(x,y); grid on;
>> ylim([0 50]);
19 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Xác định các mốc ghi trên trục tọa độ
Xtick và Ytick
Ví dụ:
>> x = -pi:0.1:pi;
>> plot(x,sin(x))
>> set(gca,'XTick',-pi:pi/2:pi)
>> set(gca,'XTickLabel',
{'-pi','-pi/2','0','pi/2','pi'})
20 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Chú thích trên đồ thị
Các lệnh:
xlabel; ylabel
title
legend
text; gtext;
21 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Chú thích trên đồ thị (tt.)
Ví dụ:
x = -pi:.1:pi;t = -pi/4;
y = sin(x);
plot(x,y)
set(gca,'XTick',-pi:pi/2:pi)
set(gca,'XTickLabel',{'-pi','pi/2','0','pi/2','pi'})
xlabel('-\pi \leq \Theta \leq \pi')
ylabel('sin(\Theta)')
title('Plot of sin(\Theta)')
text(-pi/4,sin(-pi/4),'\leftarrow sin(\pi\div4)',...
'HorizontalAlignment','left')
legend('sin \theta')
hold on
plot(t, sin(t),’or’)
22 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Chú thích trên đồ thị (tt.)
Ví dụ (tt.):
ylabel
xlabel
title
legend
text
23 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Vẽ đồ thị trên hai tung độ khác nhau
>>plotyy(x1,y1, x2,y2)
Ví dụ:
t=0:900; A=1000;
a=0.005; b=0.005;
y1 = A*exp(-a*t);
y2 = sin(b*t);
plotyy(t,y1,t,y2);
24 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Vẽ nhiều đồ thị trên cùng một cửa sổ
>>subplot(m,n,p)
Chia màn hình đồ họa làm m hàng, n cột và p là phần cửa
sổ hiện thời. Các cửa sổ con của màn hình đồ họa được
đánh số theo hàm từ trái sang phải, từ trên xuống dưới.
25 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Vẽ nhiều đồ thị trên cùng một cửa sổ (tt.)
Ví dụ:
t = 0:pi/20:2*pi; [x,y] = meshgrid(t);
subplot(2,2,1); plot(sin(t),cos(t)); axis equal
subplot(2,2,2); z = sin(x)+cos(y); plot(t,z); axis([0 2*pi -2 2])
subplot(2,2,3); z = sin(x).*cos(y); plot(t,z); axis([0 2*pi -1 1])
subplot(2,2,4); z = (sin(x).^2)-(cos(y).^2); plot(t,z); ...
axis([0 2*pi -1 1])
26 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Vẽ nhiều đồ thị trên cùng một cửa sổ (tt.)
Ví dụ (tt.):
27 04/06/2013 Lập trình tính toán
4.1 Đồ họa 2D (tt.)
Đọc dữ liệu từ màn hình đồ họa
>>[x,y] = ginput
Đọc tọa độ điểm từ màn hình đồ họa và trao kết quả cho 2
vector x và y. Vị trí của điểm được xác định bởi chuột hoặc
bàn phím.
28 04/06/2013 Lập trình tính toán
4.2 Đồ họa 3D
Lệnh plot3
>> plot3(x,y,z,‘option’)
Ví dụ:
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on
axis square
29 04/06/2013 Lập trình tính toán
4.2 Đồ họa 3D (tt.)
Lệnh meshgrid
>> [u,v]=meshgrid(x,y)
Trong đó, giá trị tọa đổ điểm của lưới được lưu trữ vào 2
ma trận u, v
- u chứa vector x với m dòng
- v chứa vector y với n cột
30 04/06/2013 Lập trình tính toán
4.2 Đồ họa 3D (tt.)
Bộ lệnh tạo lưới
Lệnh Ý nghĩa
mesh(z)
In các giá trị trong ma trận z như là các độ cao
trên mặt lưới grid hình chữ nhật. Nối các điểm đó
với các điểm xung quanh tạo nên mặt lưới
mesh(u,v,z,c)
Vẽ hàm mặt lưới trên dữ liệu là các phần tử trong
ma trận z. Các điểm lân cận trong lưới được nối
với nhau bởi các đường thẳng. Đồ họa được vẽ
trong không gian 3D với góc chiếu phối cảnh,
trong đó phần tử zij là chiều cao trên lưới
grid(uij,vij).
C: ma trận màu cho mỗi điểm. Nếu C không xác
định thì C=Z
31 04/06/2013 Lập trình tính toán
4.2 Đồ họa 3D (tt.)
Bộ lệnh tạo lưới (tt.)
Lệnh Ý nghĩa
meshc(...)
Vẽ bước lưới cho các bề mặt lưới tương tự như
lệnh mesh nhưng đồng thời vẽ thêm đường
contour ở dưới bề mặt lưới
meshz(...) Vẽ mặt lưới tương tự như lệnh mesh nhưng có thêm lưới grid trên mặt x, y
waterfall(...) Tương tự như lệnh mesh nhưng lưới grid chỉ
được vẽ theo một hướng
hidden on/off Hiện / không hiện các đường khuất sau mặt lưới
tạo bởi lệnh mesh
32 04/06/2013 Lập trình tính toán
4.2 Đồ họa 3D (tt.)
Bộ lệnh tạo lưới (tt.)
Ví dụ: Vẽ mặt z=sin(y2-x)-cos(y-x2) với x,y∈[0,π]
x=0:0.1:pi;y=0:0.1:pi;
[X,Y]=meshgrid(x,y);
Z=sin(Y.^2+X)-cos(Y-X.^2);
subplot(221);mesh(Z);
subplot(222);meshc(Z);
subplot(223);mesh(x,y,Z);
axis([0 pi 0 pi -5 5]);
subplot(224);mesh(Z);
hidden off
33 04/06/2013 Lập trình tính toán
4.2 Đồ họa 3D (tt.)
Lệnh comet3
>> comet(x,y,z,p)
Cho ra tiến trình vẽ mô phỏng hàm z=f(x,y) với độ kéo dài
tính theo p.
Nếu p không các định thì hàm số lấy giá trị mặc định là tập
của các giá trị 0.1
34 04/06/2013 Lập trình tính toán
4.3 In đồ thị
Xuất hình thành file với định dạng chỉ định
>> print –dformat filename
Một số format của tập tin: tiff, bmp, jpeg,
Ví dụ:
print -dtiff -r200 mygraph.tiff
print –djpeg mygraph.jpeg
35 04/06/2013 Lập trình tính toán
4.4 Giao diện người sử dụng (GUI)
Tạo giao diện đồ họa
>> guide