19/1/2011, 22:46
Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản
Lời nói đầu
Đồ họa máy tính được ra đời bởi sự kết hợp của 2 lĩnh vực thông tin và truyền
hình. Đầu tiên kỹ thuật đồ họa được phát triển bởi các nhóm kỹ sư sử dụng máy tính lớn.
Trong giai đoạn đầu của sự phát triển người ta phải tốn nhiều tiền cho việc trang bị các
thiết bị phần cứng. Ngày nay, nhờ vào sự tiến bộ của vi xử lý, giá thành của máy tính
càng lúc càng phù hợp với túi tiền của người sử dụng trong khi các kỹ thuật ứng dụng đồ
họa của nó ngày càng cao hơn nên có nhiều người quan tâm nghiên cứu đến lĩnh vực này.
Chúng ta có thể vẽ ra những hình ảnh không chỉ là ảnh tĩnh mà còn có thể biến đổi thành
những hình ảnh sinh động qua các phép quay, tịnh tiến... Do vậy, đồ họa máy tính trở
thành một lĩnh vực lý thú và có nhiều ứng dụng trong thực tế.
Tuy nhiên, việc dạy và học kỹ thuật đồ họa thì không là đơn giản do chủ đề này có
nhiều phức tạp. Kỹ thuật đồ họa liên quan đến tin học và toán học bởi vì hầu hết các giải
thuật vẽ, tô cùng các phép biến hình đều được xây dựng dựa trên nền tảng của hình học
không gian hai chiều và ba chiều.
Hiện nay, Kỹ thuật đồ họa là một môn học được giảng dạy cho sinh viên chuyên
ngành Tin học với 45 tiết lý thuyết và 15 tiết thực tập. Nội dung của giáo trình kỹ thuật
đồ họa này tập trung vào 2 vấn đề chính như sau :
- Trình bày các thuật toán vẽ và tô các đường cơ bản như đường thẳng, đa giác,
đường tròn, ellipse và các đường conic. Các thuật toán này giúp cho sinh viên có thể tự
mình thiết kế để vẽ và tô một hình nào đó ( chương 1 và 2).
- Nội dung thứ hai đề cập đến đồ họa hai chiều và đồ họa ba chiều bao gồm các
phép biến đổi Affine, windowing và clipping, quan sát ảnh ba chiều qua các phép chiếu,
khử các mặt khuất và đường khuất, thiết kế đường cong và mặt cong (từ chương 3 đến
chương 7).
Giáo trình kỹ thuật đồ họa này được sửa đổi và cập nhật dựa trên kinh nghiệm
giảng dạy đã qua và được xây dựng dựa trên tài liệu tham khảo chính là :
Donald Hearn, M. Pauline Baker; Computer Graphics; Prentice-Hall, Inc.,
Englewood Cliffs, New Jersey , 1986.
Sau cùng, chúng tôi hy vọng rằng giáo trình này sẽ đóng góp tích cực trong việc
cải tiến sự hiểu biết của sinh viên về lĩnh vực đồ họa và mong nhận được sự góp ý của
các đồng nghiệp và sinh viên để công việc biên soạn ngày càng được tốt hơn.
Mục lục
Chương 1: GIỚI THIỆU THUẬT TOÁN VẼ VÀ TÔ...................................6
CÁC ĐƯỜNG CƠ BẢN.....................................................................................6
1.1 Tổng quan .........................................................................................................6
1.2. Hệ tọa độ thế giới thực, hệ tọa độ thiết bị và hệ tọa độ chuẩn .........................7
1.3. Thuật toán vẽ đoạn thẳng..................................................................................9
1.3.1. Thuật toán DDA (Digital DifferentialAnalyzer).....................................10
1.3.2. Thuật toán Bresenham.............................................................................13
1.4. Thuật toán vẽ đường tròn................................................................................17
1.4.1. Thuật toán đơn giản.................................................................................17
1.4.2. Thuật toán MidPoint................................................................................18
1.4.3. Vẽ đường tròn bằng thuật toán Bresenham.............................................21
1.4.4. Thuật toán vẽ Ellipse...............................................................................22
1.4.5. Vẽ đường conics và một số đường cong khác ........................................24
1.4.6. Vẽ đa giác................................................................................................25
1.4.7. Tổng kết chương 1...................................................................................28
1.4.8. Bài tập chương 1 .....................................................................................28
Chương 2 : CÁC THUẬT TOÁN TÔ MÀU..................................................31
2.1. Tổng quan .......................................................................................................31
2.2. Các không gian màu .......................................................................................31
2.2.1. Không gian màu RGB (Red - Green - Blue)...........................................31
2.2.2. Không gian màu CMY (Cyan - Magenta - Yellow) ...............................32
2.2.3. Không gian màu HSV ( Hue - Saturation - Value ) ................................32
2.3. Các thuật toán tô màu .....................................................................................33
2.3.1. Tô đơn giản..............................................................................................33
2.3.2. Tô màu theo dòng quét (scan - line)........................................................38
2.3.3. Phương pháp tô màu dựa theo đường biên..............................................42
2.4. Tổng kết chương 2..........................................................................................45
2.5. Bài tập chương 2.............................................................................................46
Chương 3 : PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA HAI CHIỀU..................47
3.1. Tổng quan .......................................................................................................47
3.2. Phép tịnh tiến (translation)..............................................................................47
3.3. Phép biến đổi tỷ lệ ..........................................................................................48
3.4. Phép quay........................................................................................................49
3.5. Phép đối xứng .................................................................................................51
3.6. Phép biến dạng................................................................................................51
3.7. Phép biến đổi Affine ngược ( The inverse of an Affine transformation) .......52
3.8. Một số tính chất của phép biến đổi affine ......................................................53
3.9. Hệ tọa độ thuần nhất .......................................................................................53
3.10. Kết hợp các phép biến đổi (composing transformation).............................54
3.11. Tổng kết chương 3 ......................................................................................55
3.12. Bài tập chương 3 .........................................................................................55
Chương 4 ...........................................................................................................58
WINDOWING và CLIPPING........................................................................58
4.1. Tổng quan .......................................................................................................58
4.2. Các khái niệm về Windowing.........................................................................58
4.3. Các thuật toán Clipping ..................................................................................63
4.4. Phép biến đổi từ cửa sổ - đến – vùng quan sát ...............................................84
4.5. Tổng kết chương 4..........................................................................................86
4.6. Bài tập chương 4.............................................................................................86
Chương 5 : ĐỒ HỌA BA CHIỀU...................................................................88
5.1. Tổng quan .......................................................................................................88
5.2. Giới thiệu đồ họa 3 chiều................................................................................88
5.3. Biểu diễn đối tượng 3 chiều............................................................................90
5.4. Các phép biến đổi 3 chiều...............................................................................95
5.4.1. Hệ tọa độ bàn tay phải - bàn tay trái .......................................................95
5.4.2. Các phép biến đổi Affine cơ sở...............................................................95
5.5. Tổng kết chương 5..........................................................................................97
Chương 6 : QUAN SÁT ẢNH BA CHIỀU ...................................................98
6.1. Tổng quan .......................................................................................................98
6.2. Các phép chiếu................................................................................................98
6.2.1. Các phép chiếu song song .....................................................................100
6.2.2. Các phép chiếu phối cảnh......................................................................105
6.3. Biến đổi hệ tọa độ quan sát (hệ quan sát) .....................................................107
6.3.1. Xác định mặt phẳng quan sát ...............................................................108
6.3.2. Không gian quan sát ..............................................................................112
6.3.3. Clipping.................................................................................................115
6.4. Cài đặt các thao tác quan sát (Implementation of Viewing Operations) ......116
6.5. Cài đặt phần cứng .........................................................................................125
6.6. Lập trình xem ảnh ba chiều ..........................................................................126
6.7. Các mở rộng đến Đường ống quan sát (Viewing Pipeline)..........................130
6.8. Tổng kết chương 6........................................................................................130
6.9. Bài tập chương 6..........................................................................................131
Chương 7 .........................................................................................................134
KHỬ CÁC MẶT KHUẤT VÀ ĐƯỜNG KHUẤT......................................134
7.1. Tổng quan .....................................................................................................134
7.2. Khử các mặt nằm sau (Back-Face Removal) ...............................................135
7.3. Phương pháp dùng vùng đệm độ sâu (Depth-Buffer Method) .....................138
7.4. Phương pháp đường quét (Scan-Line Method) ............................................140
7.5. Phương pháp sắp xếp theo độ sâu (Depth- Sorting Method)........................143
7.6. Phương pháp phân chia vùng (Area- Subdivision Method) .........................147
7.7. Các phương pháp Octree (Octree Methods) .................................................150
7.8. Loại bỏ các đường bị che khuất....................................................................154
7.9. Tổng kết chương 7........................................................................................156
7.10. Bài tập chương 7 .......................................................................................157
Download:
Lời nói đầu
Đồ họa máy tính được ra đời bởi sự kết hợp của 2 lĩnh vực thông tin và truyền
hình. Đầu tiên kỹ thuật đồ họa được phát triển bởi các nhóm kỹ sư sử dụng máy tính lớn.
Trong giai đoạn đầu của sự phát triển người ta phải tốn nhiều tiền cho việc trang bị các
thiết bị phần cứng. Ngày nay, nhờ vào sự tiến bộ của vi xử lý, giá thành của máy tính
càng lúc càng phù hợp với túi tiền của người sử dụng trong khi các kỹ thuật ứng dụng đồ
họa của nó ngày càng cao hơn nên có nhiều người quan tâm nghiên cứu đến lĩnh vực này.
Chúng ta có thể vẽ ra những hình ảnh không chỉ là ảnh tĩnh mà còn có thể biến đổi thành
những hình ảnh sinh động qua các phép quay, tịnh tiến... Do vậy, đồ họa máy tính trở
thành một lĩnh vực lý thú và có nhiều ứng dụng trong thực tế.
Tuy nhiên, việc dạy và học kỹ thuật đồ họa thì không là đơn giản do chủ đề này có
nhiều phức tạp. Kỹ thuật đồ họa liên quan đến tin học và toán học bởi vì hầu hết các giải
thuật vẽ, tô cùng các phép biến hình đều được xây dựng dựa trên nền tảng của hình học
không gian hai chiều và ba chiều.
Hiện nay, Kỹ thuật đồ họa là một môn học được giảng dạy cho sinh viên chuyên
ngành Tin học với 45 tiết lý thuyết và 15 tiết thực tập. Nội dung của giáo trình kỹ thuật
đồ họa này tập trung vào 2 vấn đề chính như sau :
- Trình bày các thuật toán vẽ và tô các đường cơ bản như đường thẳng, đa giác,
đường tròn, ellipse và các đường conic. Các thuật toán này giúp cho sinh viên có thể tự
mình thiết kế để vẽ và tô một hình nào đó ( chương 1 và 2).
- Nội dung thứ hai đề cập đến đồ họa hai chiều và đồ họa ba chiều bao gồm các
phép biến đổi Affine, windowing và clipping, quan sát ảnh ba chiều qua các phép chiếu,
khử các mặt khuất và đường khuất, thiết kế đường cong và mặt cong (từ chương 3 đến
chương 7).
Giáo trình kỹ thuật đồ họa này được sửa đổi và cập nhật dựa trên kinh nghiệm
giảng dạy đã qua và được xây dựng dựa trên tài liệu tham khảo chính là :
Donald Hearn, M. Pauline Baker; Computer Graphics; Prentice-Hall, Inc.,
Englewood Cliffs, New Jersey , 1986.
Sau cùng, chúng tôi hy vọng rằng giáo trình này sẽ đóng góp tích cực trong việc
cải tiến sự hiểu biết của sinh viên về lĩnh vực đồ họa và mong nhận được sự góp ý của
các đồng nghiệp và sinh viên để công việc biên soạn ngày càng được tốt hơn.
Mục lục
Chương 1: GIỚI THIỆU THUẬT TOÁN VẼ VÀ TÔ...................................6
CÁC ĐƯỜNG CƠ BẢN.....................................................................................6
1.1 Tổng quan .........................................................................................................6
1.2. Hệ tọa độ thế giới thực, hệ tọa độ thiết bị và hệ tọa độ chuẩn .........................7
1.3. Thuật toán vẽ đoạn thẳng..................................................................................9
1.3.1. Thuật toán DDA (Digital DifferentialAnalyzer).....................................10
1.3.2. Thuật toán Bresenham.............................................................................13
1.4. Thuật toán vẽ đường tròn................................................................................17
1.4.1. Thuật toán đơn giản.................................................................................17
1.4.2. Thuật toán MidPoint................................................................................18
1.4.3. Vẽ đường tròn bằng thuật toán Bresenham.............................................21
1.4.4. Thuật toán vẽ Ellipse...............................................................................22
1.4.5. Vẽ đường conics và một số đường cong khác ........................................24
1.4.6. Vẽ đa giác................................................................................................25
1.4.7. Tổng kết chương 1...................................................................................28
1.4.8. Bài tập chương 1 .....................................................................................28
Chương 2 : CÁC THUẬT TOÁN TÔ MÀU..................................................31
2.1. Tổng quan .......................................................................................................31
2.2. Các không gian màu .......................................................................................31
2.2.1. Không gian màu RGB (Red - Green - Blue)...........................................31
2.2.2. Không gian màu CMY (Cyan - Magenta - Yellow) ...............................32
2.2.3. Không gian màu HSV ( Hue - Saturation - Value ) ................................32
2.3. Các thuật toán tô màu .....................................................................................33
2.3.1. Tô đơn giản..............................................................................................33
2.3.2. Tô màu theo dòng quét (scan - line)........................................................38
2.3.3. Phương pháp tô màu dựa theo đường biên..............................................42
2.4. Tổng kết chương 2..........................................................................................45
2.5. Bài tập chương 2.............................................................................................46
Chương 3 : PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA HAI CHIỀU..................47
3.1. Tổng quan .......................................................................................................47
3.2. Phép tịnh tiến (translation)..............................................................................47
3.3. Phép biến đổi tỷ lệ ..........................................................................................48
3.4. Phép quay........................................................................................................49
3.5. Phép đối xứng .................................................................................................51
3.6. Phép biến dạng................................................................................................51
3.7. Phép biến đổi Affine ngược ( The inverse of an Affine transformation) .......52
3.8. Một số tính chất của phép biến đổi affine ......................................................53
3.9. Hệ tọa độ thuần nhất .......................................................................................53
3.10. Kết hợp các phép biến đổi (composing transformation).............................54
3.11. Tổng kết chương 3 ......................................................................................55
3.12. Bài tập chương 3 .........................................................................................55
Chương 4 ...........................................................................................................58
WINDOWING và CLIPPING........................................................................58
4.1. Tổng quan .......................................................................................................58
4.2. Các khái niệm về Windowing.........................................................................58
4.3. Các thuật toán Clipping ..................................................................................63
4.4. Phép biến đổi từ cửa sổ - đến – vùng quan sát ...............................................84
4.5. Tổng kết chương 4..........................................................................................86
4.6. Bài tập chương 4.............................................................................................86
Chương 5 : ĐỒ HỌA BA CHIỀU...................................................................88
5.1. Tổng quan .......................................................................................................88
5.2. Giới thiệu đồ họa 3 chiều................................................................................88
5.3. Biểu diễn đối tượng 3 chiều............................................................................90
5.4. Các phép biến đổi 3 chiều...............................................................................95
5.4.1. Hệ tọa độ bàn tay phải - bàn tay trái .......................................................95
5.4.2. Các phép biến đổi Affine cơ sở...............................................................95
5.5. Tổng kết chương 5..........................................................................................97
Chương 6 : QUAN SÁT ẢNH BA CHIỀU ...................................................98
6.1. Tổng quan .......................................................................................................98
6.2. Các phép chiếu................................................................................................98
6.2.1. Các phép chiếu song song .....................................................................100
6.2.2. Các phép chiếu phối cảnh......................................................................105
6.3. Biến đổi hệ tọa độ quan sát (hệ quan sát) .....................................................107
6.3.1. Xác định mặt phẳng quan sát ...............................................................108
6.3.2. Không gian quan sát ..............................................................................112
6.3.3. Clipping.................................................................................................115
6.4. Cài đặt các thao tác quan sát (Implementation of Viewing Operations) ......116
6.5. Cài đặt phần cứng .........................................................................................125
6.6. Lập trình xem ảnh ba chiều ..........................................................................126
6.7. Các mở rộng đến Đường ống quan sát (Viewing Pipeline)..........................130
6.8. Tổng kết chương 6........................................................................................130
6.9. Bài tập chương 6..........................................................................................131
Chương 7 .........................................................................................................134
KHỬ CÁC MẶT KHUẤT VÀ ĐƯỜNG KHUẤT......................................134
7.1. Tổng quan .....................................................................................................134
7.2. Khử các mặt nằm sau (Back-Face Removal) ...............................................135
7.3. Phương pháp dùng vùng đệm độ sâu (Depth-Buffer Method) .....................138
7.4. Phương pháp đường quét (Scan-Line Method) ............................................140
7.5. Phương pháp sắp xếp theo độ sâu (Depth- Sorting Method)........................143
7.6. Phương pháp phân chia vùng (Area- Subdivision Method) .........................147
7.7. Các phương pháp Octree (Octree Methods) .................................................150
7.8. Loại bỏ các đường bị che khuất....................................................................154
7.9. Tổng kết chương 7........................................................................................156
7.10. Bài tập chương 7 .......................................................................................157
Download: