Đồ họa với matlab
Trang 1ĐĂNG MINH HOÀNG
NHÀ XUẤT BẢN THỐNG KÊ
Trang 2DANG MINH HOANG
Trang 3Lời giới thiệu MATLAB là một ngôn ngữ lập trình cấp cao được dùng trong lãnh vực thuật toán Ngôn ngữ được kết hợp với sự tính toán, sự thực tiễn và lập trình trong môi trường đễ sử dụng khi mà những
vấn đề và các giải pháp được diễn đạt tương tự như cách giải toán
Chương trình bao gồm:
e - Toán học và các phép tính
e Triển khai thuật giải
« - Phân tích dữ liệu, khám phá và hiển thị
e Triển khai các đồ hình, sóng hiệu chấn động
e Triển khai chương trình bao gồm việc thiết kế các chương
trình giao diện đồ họa
MATLAB là một hệ thống tương tác với những thành phần
dữ liệu cơ bản là một mảng mà không cần một chiều hướng (dimension) bat ky Diéu nay cho phép ban gidi quyết được rất
nhiều vấn để trong kỹ thuật tính toán; đặc biệt là đối với các ma trận và các công thức tính các vector, rút ngắn được rất nhiều thời gian lập trình theo ngôn ngữ C hoặc FORTRAN
MATLAB là một thuật ngữ đườc viết tắt từ Matrix
Laboratory, thoạt tiền được viết với mục đích làm cho việc truy cập các phần mềm ma trận triển khai từ các đề án LINKPACK
và EISPACK ~ các chương trình tạo ảnh nghệ thuật được tính toán theo ma trận được đễ dàng và nhanh chóng
Theo thời gian, MATLAB đã được rất nhiều người chấp
nhận Trong các học đường, MATLAB được xem như là một công
cụ giảng dạy chuẩn trong lãnh vực khoa học, kỹ thuật và toán
học Trong công nghiệp, MATLAB là một công cụ được dùng để
phân tích, triển khai và nghiên cứu
MATLAB đưa ra những đặc tính quen thuộc đối với các giải
Trang 4pháp ứng dụng đặc biệt gọi là các hộp công cụ (tool box) Rất quan trọng đối với hầu hết những người sủ dụng, những hộp công
cụ này cho phép bạn tìm hiểu và ứng dụng những kỹ thuật đặc
biệt Những hộp công cụ là các sự tuyển chọn bao hàm của các
chức năng MATLAB (các tập tin M - M-fies) được triển khai trong môi trường MATLAB để giải quyết từng hạng mục của các vấn để Lãnh vực mà các hộp công cụ được sử dụng bao gồm việc
xử lý các tin hiệu, kiểm soát hệ thống, các mạng trung tính MATLAB gồm 5 thành phần chính:
cao để điều khiến các câu lệnh, các hàm, cấu trúc dữ liệu,
nhập/xuất và các đặc tỉnh lập trình hướng đối tượng Nó cho
phép cả hai “lập trình nhỏ“ để nhanh chóng tạo và đưa ra các chương trình, và “lập trình theo lớn” để tạo các chương
trình ứng dụng phức tạp và bao quát
và những thành phần tiện ích để bạn sử dụng như những
người sử dụng hoặc các lập trình viên MATLAB Chúng bao
gồm những đối tượng tiện ích được dùng để quản lý các thay đổi trong môi trường làm việc cũng như nhập và xuất các đữ liệu Ngoài ra, chúng cũng bao gồm những công dùng vào việc khai phá, quan lý, gỡ rối, và tạo các tập tin nén M-files,
các trình ứng dụng của MATLAB
* Đồ hình Đây là một hệ thống đổ họa của MATLAB Chúng bao gồm các lệnh cấp cao cho các đữ liệu hiện hữu hai chiều hoặc ba chiều, xử lý hình ảnh, chuyến động và những đối tượng hình ảnh giới thiệu Ngoài ra, chúng cũng bao gồ:n các lệnh cấp thấp cho phép bạn hoàn toàn sở thích hóa tính hiến thị của các đối tượng hình ảnh cũng như thiết kế những đối tượng giao dién hinh anh (GUI) trong các chương trình:
MATLAB.
Trang 5Thư viện hàm toán học MATLAB Đây là một sự lựa chọn của các chương trình thuật toán từ những công thức cơ
bản như sin, cosin, số phức cho đến các hàm toán học phức
tạp hơn như ma trận đảo, các hàm số Đessel
Trình giao diện ứng dụng MATLAB (APJ) Đây là một chương trình giao điện cho phép bạn lập các chương trình
ứng dụng theo ngôn ngữ C hoặc FORTRAN để tương tác với MATLAB Chúng bao gồm những thành phần tiện ích để gọi
các đại lượng từ MATLAB (liên kết động), triển khai MATLAB khi tính toán kỹ thuật cũng như lập và đọc các tập tin MAT
Do chủ trương của tác giả mong muốn các bạn nắm được
các nguyên lý cơ bản về cách sử dụng chương trình MATLAB nên
quyển Đồ họa với MATLAB 5.3 chỉ đề cập đến cách dùng các chương trình thuật giải để vẽ các dé thị, hình ảnh từ đơn giản đến phức tạp mà không đi sâu về cách dùng ngồn ngữ lập trình
để tạo các tập —M hoặc MAT hoặc dùng chương trình Simulink
và các ma trận phức để tạo các mô hình trong lãnh vực công
nghệ, kiến trúc Mong các bạn thông cảm
Trân trọng
Trang 6Chương Í
Cài đặt MATLAB
Trang 7Cài đặt chương trình
Quy trình cài đặt MATLAB 5.3 cũng tương tự như tác vụ cài
đặt các chương trình phần mềm khác, chỉ cần theo các hướng dẫn trong khung thoại và nếu cần thiết, bổ sung thêm các thông
nên sau khi gắn
đĩa CD vào ổ đĩa
Trang 83 Khung màn hình thứ hai chỉ hiện những thông tin về bản quyển của chương trình Kích Yes để sang khung màn hình
cài đặt kế tiếp
4 Trong khung màn hình Customer Information, nếu cần thiết, đánh tên họ, công ty Nhập mã khóa của chương trình vào khung Personal License Password Kích tiếp Next
Trang 9Trong khung man hinh Select MATLAB Components, kich
xóa những thành phân cảm thấy không cân thiết sử dụng
trong chương trình để dành thêm dung lượng trống Muốn
kiểm tra dung lượng của chương trình, kích thước lệnh Disk Space để quan sát
Sau khi kích panes pool
Seuz hen rbledrdolog yeự MATUAÑ comgsnertz
gmarctacetae orale were ATLAS AP sheer HN ae
Trang 10chương trình; [satan Topics | Other Products
kế tiếp hiện tte |
Windows
Trang 11Khởi động và thoát khỏi chương trình
To get started, type one of these: helpwin, helpdesk, or demo
For product information, type tour or visit ww.mathworks.con i
Cũng như các chương trình chạy trong môi trường Windows
Trang 12khác, MATLAB cũng có những thành phần giao diện của riêng
chương trình
>
`
Dòng trên cùng là thanh tiêu đề gồm:
Tan trai là biểu tượng chương trình
Khi kích vào biểu tượng này,
MATLAB hiện menu xổ chứa các
lệnh liên quan đến việc xử lý khung
cửa sổ chương trình cũng như thoát
khỏi chương trình
Kế biểu tượng là tên chương trình
cùng với tên cửa sổ chương trình Tận phải là ba biểu tượng
có chức năng phóng to, thu nhỏ khung màn hình cũng như
thoát khỏi chương trình
Dòng thứ hai là thanh trình đơn gồm các menu chính chứa các lệnh liên quan đến việc tạo, xử lý, gán thuộc tính vào đồ
thị
Dòng thứ ba là thanh công cụ chứa các hộp công cụ dùng để
điều hoạt lệnh nhanh thay cho việc kích chọn tên lệnh trong
thanh trình đơn
Phần chiếm gần trọn màn hình là nơi nhập các lệnh liên quan đến việc vẽ đồ thị, gán thuộc tính cho đối tượng
Cuối cùng là thanh tác vụ hiện thông tin về tình-trạng đang
xử lý, thực hiện trên đối tượng hiện hành
“Thoát khỏi MATLAB
Từ khung màn hình MATLAB Command Window, đánh lệnh quit hoặc kích biểu tượng Close (X) nằm ngay góc phải thanh
tiéu dé MATLAB
15
Trang 13Chương 2
Môi trường
MATLAB
Trang 14
To get started, tựp#`one 9£ these: helpain, helpdesk, or deno
For product infornation, tụpe tour or visit www.nathworks.com
đend|
Dấu mời lệnh
Cac phim mii tén va phim khién
Cũng như các chương trình phần mềm hoạt động trong môi trường Windows, ngoài việc dùng mouse để khiển lệnh, MATLAB cũng dùng các phím mũi tên và phím khiển để di chuyển con trỏ đến vị trí hoặc đối tượng muốn xử lý
17
Trang 15Home Ctrl +.a Về đầu dòng
End Gtl+e Về cuối dòng
Esc 0trl+n Xóa một dòng
Del Gtrl + d Xóa ký tự ngay vị trí con trỏ
Backspace Ctrl + h Xóa ký tự trước con trỏ
Ctrl +k Xóa đến cuối dòng
Xóa khung cửa sổ
Dùng lệnh cle để xóa khung cửa sổ dòng lệnh Lệnh này không xóa trang màn hình lập trình mà chỉ xóa khung cửa sổ Sau khi ding lénh ele, ban vẫn có thể cùng phím mũi tên để
quan sát từng dòng chương trình
"Thí dụ, từ dấu mời lệnh >> trong khung cửa sổ nhập lệnh
MATLAB Command, đánh lệnh ele, những dòng hướng dẫn sẽ bị xóa sạch
Trang 16
Định trang
Dùng lệnh more để kiểm soát số lượng trang trong khung
cửa sổ nhập lệnh
Theo mac định, lệnh more được gán ở trạng thái off Khi
lệnh được gán về trạng thái on, từng trang chương trình một (chế độ đầy màn hình) sẽ hiện lên màn hình Sau đó dùng phím:
« Enter (Return) : Nhẩy xuống dòng dưới
* Space : Sang trang ké
* P : Kết thúc thể hiện trang
Ngắt lệnh
Nếu ngắt dòng lệnh bằng cấu chấm phẩy (;) MATLAB sé
thực hiện việc tính toán nhưng không hiện kết quả Tuy nhiên,
nếu như dòng thứ hai, con số đầu tiên không gán toán tử,
MATLAB sé hién thông tin báo lỗi
Trang 17ngay tức thì
Định dạng số
Dùng lệnh format để định dạng những giá trị thuộc dạng
số đang thể hiện trong trang lập trình
Trang 18Lệnh chỉ ảnh hưởng đến cách thể hiện của những con số, chứ không ảnh hưởng đến việc MATLAB lưu lại hoặc tính toán
Để có thể định dạng chung cho cả những con số đang thể hiện
hoặc của MATLAB, dùng lệnh sprintf hoặc fprintf
Đối với hệ điều hành Windows, bạn có thể thay đổi dạng
mặc định bằng cách thay đổi các thông số trong khung thoại Preferences tii menu File và chọn thể loại từ thước lệnh General
Trang lập trình MATLAB
Trang lập trình MATLAB chứa các tập hợp biến (được gọi là các mảng) để bạn có thể điều hoạt từ dòng nhập lệnh
Màn hình MATLAB
Dùng lệnh who hoặc whos để quan sát những gì đang thể
hiện trong trang lập trình
© Who chỉ hiện tên
e Whos hién tên, kích thước và loại thông tin dữ liệu
rand total is 1 elements using 8 bytes:
soali pillanì MO) #3 aFÌR 4Ø 08/4:£M'WDI 21
21
Trang 19Xóa màn hình lập trình MATLAB
Ding lénh clear để xóa tất cả các tham biến còn đang tổn
tại trong khung màn hình lập trình
Tải và lưu trang lập trình
trong quá trình aon [Por 1/44) 2) Ø 0 ở đi —i A0 8 & 9W Ạ (8 *Ï
đang thiết lập
và sau đó tải lại dữ liệu trong trang lập trình MATLAB để sửa
đổi Lệnh save và load cũng có thể du nhập hoặc xuất các tập
tin dữ liệu thuộc dạng văn tự
Trong môi trường Windows, lệnh save cũng cũng được gọi bằng cách từ menu File, chọn Save Workspace As và lệnh load cũng được gọi từ menu Eile/Load Workspace
Tìm đường dẫn
MATLAB dùng lệnh path để truy tìm các tập tin M- Những tập tin M- này được kết hợp trong các thư mục thuộc hệ thống Rất nhiều thư mục của tập tin M- này được cung cấp theo chương
trình MATLAB, trong khi một số tập tin khác lại được dùng riêng như các khung lệnh
Trang 20* Tim foo nhu là một tham biến
e _ Kiểm tra foo như một hàm được lập sẵn
e Tim trong thu mục hiện hành với tên tập tin foo.m
e Truy tìm các thư mục theo đường dẫn với foo.m
Nếu như
bạn có hơn một
hàm mang cùng To get started, type ne oF these: heÖpdia, BaÖỹ$exk, or sens
tên, thivcht e6 Fer pcedoet inernation, type tour or visit wmwrastaserks-com tên hàm đầu
Trang 21Các tham số với lệnh path
Dùng lệnh path với các tham số :
e path không mang một tham số bất kỳ, MATLAB sẽ hiện toàn bộ thư mục trong chương trình hiện hành
« - path (s), với s là một chuỗi, MATLAB cài đường dẫn và s
e addpath /hom/lib va (path, /home/lib’) cd ha lénh sé néi
thư mục mới vào đường dẫn
« rmpath /homeilib loại bỏ đường dẫn /home/Hb
"Thí dụ, ngay dòng mời lệnh, đánh lệnh addpath /home/lib, néu
có lỗi, MATLAB sẽ hiện đường dẫn thư mục cừng thông tin chỉ
tiết về lỗi xảy ra
To get started, type one of these: helpuin, helpdesk, or đeno
For praduct information, type tour or visit ww.nathuorks con
adapath /home/1ib
larni/ 9: Directory access failure: \hone\1ib
\HATLABR11\toolbox\natlab\generai\path.n at line 117
ITLABR14\tøe#®s@ cnatlab\general\addpath.n at line 67
1 HATLAB path warning occurred
P TLABRTf%cop1box\nat1ab\genera1\path.m at line 117
Ấn E?\RATLABR11\toe1box\mat13b\generaJ\addpaEh.n at 1ine 67
Đường dẫn mặc định
Đường dẫn mặc định được ghi nhớ giữa các thành phần tiện
ích đã được xác lập trong tập tin pathdef thuộc thư mục mang
tên local trong hệ thống Lệnh này tự động điều hoạt mỗi lần
khởi động MATLAB
24
Trang 22Hy vàn cay
pathoe£
ns =
s\MATLAGR11\ toolbox\ matlab \geperal ;C:\MATCABR11\ toolbox\matlap\ ops ;C!\ RR
demos C : \HATLAGR11\ tool box\contro) 5C=\HATLABR1 1\toatbox\concrol\ctriguis;
\
Suef ONION 2 — SS
lesugiÌ)eidt
fia 2
Hạn có thể nhập lệnh pathdef ngay dòng mời lệnh để quan
sát tập tin pathdef (Tập tin này có dạng tương tự như
Conñg.sys của DOS) Ngoài ra, người sử dụng có thể dùng lệnh
pathtool mở khung màn hình Path Browser để sửa đối nội dung tập tin pathdef
I\BATLASBL1\conlbor\metiabielaar
, XATLkRLL\Eooe1hbox \ mat Lah \ xpax fan
+ NHATLIXBE))\Eoolbox\aec+Lab\ r epnzd
graph3đ
: NEATTXBĐBI)\Co©1bon vec14B\ pecdgr aoh
XRÀTLÀBBI1\too1bax\ mắc Lab\ graphalcE
dhst ack.m đhucarus, đ®b:c«p.n
25
Trang 23Các tập tin nằm trong đường dẫn
Dùng các lệnh sau để quan sát và dùng các tập tin trong
Trang 24e _ Dùng lệnh ed thuần túy để hiện thư mục hiện hành
« Dùng lệnh cđ với đường dẫn để thay đổi thư mục hiện hành
To get started, type one of these: helpwin, helpdes
For product information, type tour or visit www.mat =)
Trang 25Mở các tập tin trong MATLAB
Dùng lệnh open để mở cdc tap tin trong MATLAB dua theo các phần mở rộng như sau:
Tập tin hình ảnh (°.fig) Mở hình ảnh trong khung màn hình đồ họa
Tap tin M- (.m) Mở tập tin tên M- trong màn hình Editor
Tập tin Model (”.mdl) Mở các lập tin kiểu dáng trong màn hình
Simulink
Tham biến (Variable) Mở các tên tập tin mảng trong màn hình Array
Editor (mảng phải thuộc dạng số)
Các tập tin P- Mở các tập tin M- tương ứng (.m) trong khung
Trang 27SP TH, iu)
‘Show Graphic Propary Et
Là 6n a
Hiện menu xổ chứa các lệnh Sa Pah
liên quan đến việc tạo mới, quần lý, mea :
gán thuộc tính cho những đối tượng Bint
môi trường bạn tạo
cũng như sửa đổi, gỡ
rối các tập tin
chương trình như
M-ñle hoặc MEX-
fñle hoặc các đối 4 ==———= =
tượng lệnh nào đó X«lIst4lR I2 89 asherne WEB
để thực hiện cho
một tác vụ nào đó Để có thể tạo các tập tin này, bạn phải dùng
ngôn ngữ lập trình C hoặc FORTRAN
Trang 28
Khi khung màn hình Figure hiện ra, nó nằm chồng lên
khung cửa sổ nhập lệnh của MATLAB Để tạm thời đóng lại khung màn hình Figure và trở về khung cửa sổ nhập lệnh
MATLAB, kích lệnh File cia khung man hinh Figure va chon
Close tif menu xé
Để dành toàn bộ không gian trống trong khung màn hình
nhập lệnh, ngay dấu mời lệnh >>, đánh lệnh ele Dòng thông tin
hướng dẫn biến mất và dấu mời lệnh nhẩy lên góc trái trên cùng
31
Trang 29khung màn hình nhập liệu; đồng thời, cũng để phóng to khung
màn hình nhập lệnh cho trọn màn hình, kích biểu tượng maximum ÊÍ nằm trên thanh tiêu để
Fou) Olen | FOSV*AOMATAMIK SA “(DR wi
Sau khi trở về khung màn hình nhập lệnh MATLAB, bạn
nhập dữ liệu để vẽ đô thị Thí dụ, để vẽ đồ thị của hàm số y = øx + b với x biến thiên từ 0 đến 4Pi, ø có giá trị bằng sin biến thiên theo x va ö có giá trị bằng cos(x) Để nhập những số liệu này vào khung màn hình nhập lệnh và để MATLAB vẽ đồ thị, bạn thực
hiện theo trình tự sau:
1, - Khai báo độ biến thiên của x từ 0 đến 4Pi
9 Thay thế giá trị của hàm số y = ax + b
3 Dùng lệnh plot để MATLAB vẽ đường biểu diễn của hàm số
4 In hoặc lưu lại đồ thị để sử dụng sau này
Và màn hình nhập lệnh của bạn có đạng như sau:
(~2 MATLAB Command Window [jo
Ele Ect View Window Hep
Trang 30Sau khi ấn Enter ở dòng lệnh cuối cùng, MATLAB sẽ hiện khung màn hình đồ thị với màu sắc mặc định
Dùng lệnh Save As từ menu File ở khung màn hình đồ thị
để lưu theo một tên mới
bên phải cũng như
khung cửa sổ thư
Trang 31thanh công cụ để hiện khung thoại Open
"Từ khung thoại, kích chọn nguồn chứa, tên tập tin cùng thể
loại tập tin (nếu cần thiết) đồ thị muốn mở và kích OK Thí
Trang 323 Sau khi tập tin hiện trong khung màn hình Figure, ban có
thể gán thuộc tính, thêm tiêu để hoặc gán nhãn cho các trục tọa độ
Thêm khung lươi vào đồ thị
Nhắc lại là khí khung màn hình Figure hiện ra, nó nằm chồng lên khung cửa sổ nhập lệnh MATLAB Để có thể quan sát khung màn hình Figure trong khi đang nhập lệnh, ấn chìm
mnouse vào thanh tiêu đề của khung màn hình Figure và kéo sao
cho chỉ cần thấy được một phần của thanh tiêu đề khung cửa sổ
nhập MATLAB và kích vào thanh tiêu để nhập lệnh này để nó
hiện ra nằm chồng lên khung man hinh Figure
Để thêm khung lưới vào đồ thị, từ khung cửa sổ nhập lệnh
MATLAB, đánh lệnh grid on và ấn Enter Một khung lưới sẽ
hiện ra theo đúng giá trị đã gán từ hàm số
sasz|| £|4| z|| 8 9 Ø 9 ø AC) BA 6 R8 $M 4 PÍEBR 65A
Kích vào thanh tiêu đề của khung màn hình Figure để hiện
35
Trang 33ra nên trước và dùng lệnh Save từ menu File của màn hình
Eigure để lưu các thay đổi
Gán nhãn cho trục tọa độ
1 Mở lại tập tin ham so trong man hinh Figure Kích vào
thanh tiêu đề của khung cửa sổ nhập lệnh MATLAB để hiện
Trang 342 Từ khung mà hình nhập lệnh MATLAB, đánh lệnh title(tên tiêu đề)
3 Sau khi dn Enter, tiêu để sẽ được gán ngay giữa, trên cùng
1 Mở lại tập tin ham so trong khung màn hình Figure va kich
vào thanh tiêu để của khung cửa sổ nhập lệnh để hiện ra nên trước
2 Từ khung màn hình nhập lệnh MATLAB, đánh lệnh gtext(‘\loai thuộc tính mũi tên,tên hàm số)
3 Sau khi ấn Enter, lệnh chưa điều hoạt và mũi tên cũng như
tên hàm chưa được gán Để gán, kích vào thanh tiêu đề của
Trang 35Figure để khung màn hình Figure hiện ra nền trước Để ý
lúc này con trổ mouse đổi thành hình chữ thập lớn Dùng mouse kéo hình chữ thập về vị trí muốn gán và kích mouse
"Tên đường biểu diễn cùng với mũi tên sẽ được gán ngay vị trí đã chọn
4 Dùng lệnh File/Save để lưu lại các thay đổi
Trang 36Man hinh hién khung thoai Run Script
Đánh tén tap tin m4u muốn mở trong khung nhập lệnh Run
và kích OK Nếu chọn các tập tin mẫu mặc định trong chương trình trình duyệt, kích thước lệnh Browse Màn hình
hiện khung thoai Browse
Seript với toàn Fiesolupe [Wiles = Corel
bộ đường dẫn
cùng tên tập tin muốn mở Kích OK
39
Trang 37tìn từ những nguồn chứa khác bằng cách cũng trong khung thoại
Load mat file, kích vào mũi tên của Look in để tìm nguồn chứa, chọn tên tập tin muốn du nhập
Ghi chú : Để có thể du nhập các tập tin khác uào MATLAB, điều
bắt buộc là tập tin đó phải được soạn theo hệ mã ASCII, Save Workspace As
Lưu các nội dung trong khung màn hình nhập lệnh của
MATLAB theo Workspace
1 Nhập các lệnh giải trình đồ họa trong khung cửa sổ
MATLAB như bình thường
2 Ti menu File, chon Save Workspace As Man hinh hién khung thoai Save Workspace As
Trang 38được lưu theo đạng mat và cũng là tập tin chương trình gốc
để sau này bạn có thể điều hoạt
lưu
Trang 39Show Graphics Property Editor
Hiện khung màn hình thay đổi thuộc tính mặc định của
hình ảnh để áp dụng co tất cả đối tượng hình ảnh sẽ được thiết
kế sau này hoặc chỉ riêng đối tượng theo tác vụ
Man hinh hién
khung thông tin
2 Chọn thuộc tính muốn thay đổi và kích Close Thí dụ, thay
đổi thuộc tính Echo từ mặc định on và off
đối tượng, từ menu
Tools trong khung
Trang 40chọn Alignment Tool Màn hình hiện khung thông tin Alignment
Tool Tir day, ban chọn một trong các công cụ điểu chỉnh đối
tượng và kích Apply
Show GU! Layout Tool
Hiện danh mục các biểu tượng công cụ trong khung màn hình Guide Control Panel
Từ khung màn
hình này, bạn có thể
thêm các biểu tượng
công cụ tự tạo mới
gán biểu tượng công B La | BH
cụ vào đối tượng để Em | ee | ee
điều hoạt nhanh bằng foul ea HAO Sa AMAA Dw
cách kích chọn biểu
tượng trong khung biểu tượng
Guide Tools để hiện khung
thông tin và từ đây gán nhãn
cũng như các thuộc tính khác
cho công cụ vừa chọn và kích
Apply
43