TRƢỜNG ĐẠI HỌC PHẠM ĐÀ NẴNG
KHOA TIN HỌC
PHẠM ANH PHƢƠNG
GIÁO TRÌNH
ĐỒ HỌA MÁY TÍNH
LƢU HÀNH NI BỘ
Đà Nng - 2020
Giáo trình Đồ họa máy tính
Phạm Anh Phương 1
LI MỞ ĐẦU
Theo khung cơng trình đào to các hệ cnhân và kỹ sƣ ca B Giáo Dục và Đào
To, Đồ ha y tính mt trong nhng học phn quan trng của ngành Công ngh
Thông tin.
Qua nhiu m nghn cứu và giảng dạy n Đồ họa y tính các trƣờng Đại học
Khoa hc Huế, Đi hc Sƣ phạm Đà Nng và Huế, Đại học Điện lực Hà Nội và một số
trƣờng Đi học khác miền Trung và Tây Nguyên, chúng i đã c gắng đúc kết để bn
son go trình Đồ ha y nh nhằm đáp ứng nhu cu học tập và nghiên cứu ca sinh
vn chuyên ngành Công ngh Thông tin, giúp sinh viên có một tài liệu tham khảo tốt khi
bƣớc đầu m quen với các kiến thc cũng nhƣ k năng lập trình đ họa. Đây là n học
khó liên quan đến nhiều kiến thức v toán học nhƣ hình học, hình học giải ch, ma trận…,
vì vậy đ hc tốt môn y đòi hỏi sinh viên phải códuy toán hc và kỹ ng lập trình tốt.
Nội dung của giáo trình đƣợc chia thành 7 chƣơng. c vấn đ trong mỗi cơng
đƣợc trình bày ngắn gn từ sở lý thuyết đến xây dng thuật toán và cui cùng là
ngun cài đt đƣợc minh hoạ bng ngôn ng C++. Để thuận tin cho vic thc nh ca
sinh viên, tt cả các ngun trong go trình đu tƣơng thích với trình bn dịch Dev C++.
Chúng i chân thành cm ơn các đng nghiệp Khoa ng ngh Thông tin của các
trƣờng Đại hc Sƣ phạm Đà Nẵng, Đi học Bách khoa Đà Nẵng, Đại hc Khoa học Huế,
Đại hc Đin lực Nội đã giúp đỡ, đóng góp nhiều ý kiến q báu đ hoàn thiện ni dung
giáo trình này.
Chúng i cũng hy vng sớm nhận đƣợc các ý kiến đóng góp, phê bình của bạn đc
v ni dung, chất lƣợng và hình thức tnh bày đ giáo trình y ngày một hoàn thin hơn.
Đà Nẵng, Tháng 08 Năm 2020
TÁC GI
Phạm Anh Phƣơng
Giáo trình Đhọa máy tính
Phạm Anh Pơng 2
MỤC LỤC
CHƢƠNG MĐẦU: TỔNG QUAN VỀ ĐHỌA MÁY TÍNH ........................................ 5
1. GII THIU VỀ ĐỒ HA MÁY TÍNH................................................................................... 5
2. CÁC KTHUẬT ĐHỌA ....................................................................................................... 5
2.1. K thut đ ha điểm ....................................................................................................... 5
2.2. K thut đ ha vector ..................................................................................................... 5
3. CÁC ỨNG DỤNG CA ĐHA ............................................................................................ 5
4. CÁC LĨNH VỰC NGHIÊN CỨU Đ HỌA ............................................................................ 6
5. TNG QUAN VỀ MT HĐỒ HỌA ..................................................................................... 7
5.1. H thng đ ha ................................................................................................................ 7
5.2. Các thành phn ca mt h thng đ ha...................................................................... 7
CHƢƠNG 1: CÁC YẾU TỐ CƠ SỞ CA ĐỒ HA.............................................................. 8
1.1. MÀN HÌNH ĐHỌA .............................................................................................................. 8
1.2. BIU DIỄN TOĐ ............................................................................................................... 8
1.3. V ĐIM .................................................................................................................................... 8
1.4. CÁC THUT TOÁN VẼ ĐOẠN THẲNG ........................................................................... 9
1.4.1. Thuật toán DDA (Digital differential analyzer) ........................................................ 9
1.4.2. Thuật toán Bresenham ................................................................................................10
1.4.3. Thuật toán MidPoint ...................................................................................................13
1.5. THUẬT TOÁN VẼ ĐƢỜNG TRÒN....................................................................................14
1.5.1. Thuật toán Bresenham ................................................................................................15
1.5.2. Thuật toán MidPoint ...................................................................................................17
1.6. THUẬT TOÁN VẼ ELLIPSE ...............................................................................................18
1.6.1. Thuật toán Bresenham ................................................................................................18
1.6.2. Thuật toán MidPoint ...................................................................................................20
1.7. PHƢƠNG PHÁP V ĐỒ THỊ HÀM S .............................................................................22
BÀI TẬP ...........................................................................................................................................24
CHƢƠNG 2: TÔ MÀU ................................................................................................................25
2.1. GII THIỆU CÁC H MÀU.................................................................................................25
2.1.1.H RGB (Red, Green, Blue) .......................................................................................25
2.1.2. Hệ CMY (Cyan, Magenta, Yellow) ..........................................................................26
Giáo trình Đhọa máy tính
Phạm Anh Pơng 3
2.1.3. Hệ YIQ .........................................................................................................................26
2.1.4. Hệ HSV (Hue, Saturation, Value) .............................................................................26
2.1.5. Hệ HSL (Hue, Saturation, Lightness).......................................................................27
2.2. CÁC THUT TOÁN MÀU ............................................................................................27
2.2.1. Bài toán.........................................................................................................................27
2.2.2. Thuật toán xác định P S?........................................................................................27
2.2.3. Thuật toán Scanline.....................................................................................................31
2.2.4. Thuật toán loang .....................................................................................................34
BÀI TẬP ...........................................................................................................................................38
CHƢƠNG 3 : XÉN HÌNH ...........................................................................................................39
3.1. BÀI TOÁN TỔNG QUÁT .....................................................................................................39
3.2. XÉN ĐOẠN THNG VÀO HÌNH CHNHẬT ...............................................................39
3.2.1. Thuật toán Cohen - Sutherland ..................................................................................40
3.2.2. Thuật toán chia nhị phân ............................................................................................43
3.2.3. Thuật toán Liang - Barsky..........................................................................................46
3.2.4. Khi cạnh của hình chnhật tạo với trc hoành một góc (0,/2) .....................49
3.5. XÉN ĐA GIÁC O HÌNH CHỮ NHẬT ..........................................................................50
BÀI TẬP ...........................................................................................................................................55
CHƢƠNG 4: THIT KẾ ĐƢỜNG CONG BEZIER VÀ B-SPLINE ...............................56
4.1. ĐƢỜNG CONG BEZIER MẶT BEZIER ....................................................................56
4.1.1. Thuật toán Casteljau ...................................................................................................56
4.1.2. Dng Bernstein của các đƣờng cong Bezier ............................................................57
4.1.3. Tạo và v các đƣờng Bezier.......................................................................................58
4.1.4. Các tính chất của đƣờng cong Bezier .......................................................................60
4.1.5. Đánh giá các đƣng cong Bezier...............................................................................61
4.2. ĐƢỜNG CONG SPLINE B-SPLINE............................................................................62
4.2.1. Định nga ....................................................................................................................62
4.2.2. Các tính chất hữu ích trong vic thiết kếc đƣờng cong B-Spline.....................65
4.2.3. Thiết kế các mặt Bezier và B-Spline ........................................................................66
CHƢƠNG 5: CÁC PHÉP BIẾN ĐỔI TRONG MT PHẲNG ..........................................67
5.1. CƠ STOÁN HỌC ................................................................................................................67
5.2. CÁC PP BIN ĐI BẢN ..........................................................................................67
Giáo trình Đhọa máy tính
Phạm Anh Pơng 4
5.2.1. Phép tnh tiến ...............................................................................................................67
5.2.2. Phép đồng dng ...........................................................................................................68
5.2.3. Phép đi xứng ..............................................................................................................68
5.2.4. Phép quay .....................................................................................................................68
5.2.5. Phép biến dạng.............................................................................................................68
5.2.6. Hợp ca các phép biến đi .........................................................................................68
5.3. CÁC VÍ DMINH HA .......................................................................................................70
BÀI TẬP ...........................................................................................................................................73
CHƢƠNG 6: VẼ CÁC ĐI TƢỢNG BA CHIỀU.................................................................74
6.1. CÁC PP BIN ĐI TRONG KHÔNG GIAN ...............................................................74
6.1.1. Các h trục tọa đ........................................................................................................74
6.1.2. Các phép biến đi cơ bản ...........................................................................................75
6.1.3. Ma trn nghịch đo .....................................................................................................76
6.2. PHÉP CHIU VẬT TH TRONG KHÔNG GIAN LÊN MẶT PHNG.......................76
6.2.1. Phép chiếu phi cảnh ..................................................................................................76
6.2.2. Phép chiếu song song..................................................................................................77
6.3. CÔNG THC CỦA CÁC PHÉP CHIU N MÀN HÌNH ............................................77
6.4. PHỤ LC..................................................................................................................................82
6.5. MÔ HÌNH WIREFRAME ......................................................................................................86
6.5.1. Xây dựng cấu trúc dữ liệu ..........................................................................................88
6.5.2. Vhình WireFrame ..............................................................................................89
6.6. V CÁC MẶT TOÁN HC ..................................................................................................89
BÀI TẬP ...........................................................................................................................................93
CHƢƠNG 7: KHỬ ĐƢỜNG MT KHUT ...................................................................94
7.1. MÔ HÌNH CÁC MẶT ĐA GIÁC .........................................................................................94
7.2. CÁC PƠNG PHÁP KHỬ MẶT KHUT ......................................................................95
7.2.1. Giải thuật Depth-sorting .............................................................................................95
7.2.2. Giải thuật BackFace ....................................................................................................97
7.2.3. Giải thuật vùng đm đ sâu (Z-Buffer) ................................................................. 101
BÀI TẬP ........................................................................................................................................ 102
TÀI LIU THAM KHẢO ........................................................................................................ 103