Tổng quan về kỹ thuật đồ họa
Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.77 MB, 185 trang )
LỜI NÓI ĐẦU
Đồ hoạ máy tính (Computer Graphics) là một lĩnh vực lý thú và có nhiều ứng dụng
trong thực tế, nó góp phần làm cho giao tiếp giữa con người và máy tính trở nên thân
thiện hơn. Giao diện kiểu văn bản (text) đã được thay thế hoàn toàn bằng giao diện đồ
hoạ. Tuy nhiên, việc dạy và học kỹ thuật đồ họa thì không đơ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 Công Nghệ Thông Tin.
Trong cuốn giáo trình này, tôi muốn mang lại cho bạn đọc các cơ sở lý thuyết về đồ
hoạ máy tính từ đơn giản nhất như các thuật toán vẽ đường thẳ
ng, đường tròn, đa giác, ký
tự… Tiếp đến các kỹ thuật xén tỉa, các phép biến đổi đồ hoạ trong không gian 2D và
3D…Chúng ta lần lượt làm quen với thế giới màu sắc thông qua các hệ màu: RGB,
CMYK, HSV…. Phức tạp hơn nữa là các phép chiếu, các phương pháp xây dựng đường
cong và mặt cong cho đối tượng. Cuối chúng ta tìm hiểu về ánh sáng và hình học fractal.
Giáo trình gồm chín chương, trong đó chương một giúp bạn đọc có cái nhìn tổng
quan về kỹ thuật đồ hoạ t
ừ trước đến giờ cùng định hướng tương lai cho lĩnh vực này. Các
chương tiếp theo, mỗi chương sẽ là một vấn đề từ đơn giản đến phức tạp về cơ sở nền tảng
cho ngành kỹ thuật đồ hoạ. Cuối mỗi chương đều có phần bài tập để kiểm tra lại kiến thức
vừa đọc được. Bài tập gồm hai dạng: d
ạng tính toán và dạng lập trình, đối với dạng lập
trình bạn có thể viết bằng C/C++ hay BC thậm chí bằng VB đều được. Cuối cùng là phần
phụ lục gồm các hướng dẫn làm bài tập lập trình, ngôn ngữ hay dùng ở đây là C/C++ hay
BC.
Bố cục rõ ràng, hình ảnh phong phú, đa dạng. Tôi hy vọng rằng giáo trình là một bộ
tham khảo đầy đủ các thông tin hữu ích và có tính thực tiễn cao cho môn kỹ thuật đồ hoạ.
Trong quá trình biên soạn mặ
c dù đã cố gắng hết sức nhưng vẫn không tránh khỏi
những sai sót, rất mong nhận được sự đóng góp chân thành từ quý bạn đọc.
Xin chân thành cám ơn.
Tác giả
Mục lục
2
MỤC LỤC
LỜI NÓI ĐẦU………………………………………………………………………………………………………… 1
MỤC LỤC……………………………………………………………………………………………………………… 2
CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT ĐỒ HOẠ ……………………………………………… 7
1.1. CÁC KHÁI NIỆM TỔNG QUAN CỦA KỸ THUẬT ĐỒ HOẠ MÁY TÍNH
(COMPUTER GRAPHICS)…………………………………………………………………………………………… 7
1.1.1. L ịch sử phát triển……………………………………………………………………………………. 7
1.1.2. Kỹ thuật đồ họa vi tính. ………………………………………………………………………….. 8
1.2. CÁC KỸ THUẬT ĐỒ HOẠ …………………………………………………………………………… 8
1.2.1. Kỹ thuật đồ hoạ điểm (Sample based-Graphics) …………………………………………. 8
1.2.2. Kỹ thuật đồ hoạ vector……………………………………………………………………………… 9
1.2.3. Phân loại của đồ hoạ máy tính………………………………………………………………… 10
1.2.4. Các ứng dụng tiêu biểu của kỹ thuật đồ họa………………………………………………. 11
1.2.5. Các chuẩn giao diện của hệ đồ hoạ…………………………………………………………… 13
1.3. PHẦN CỨNG ĐỒ HOẠ (GRAPHICS HARDWARE)…………………………………….. 13
1.3.1. Các thành phần phần cứng của hệ đồ hoạ tương tác……………………………………. 13
1.3.2. Máy in………………………………………………………………………………………………….. 14
1.3.3. Màn hình CRT………………………………………………………………………………………. 14
1.3.4. Màn hình tinh thể lỏng (Liquid Crystal Display – LCD) …………………………….. 16
Tóm tắt chương: ………………………………………………………………………………………………… 17
Bài tập:………………………………………………………………………………………………………………18
CHƯƠNG 2: CÁC GIẢI THUẬT SINH THỰC THỂ CƠ SỞ…………………………………….. 19
2.1. CÁC HỆ THỐNG TOẠ ĐỘ TRONG ĐỒ HOẠ………………………………………………. 19
2.1.1. Hệ toạ độ thực (WCS – World Coordinate System)……………………………………. 19
2.1.2. Hệ toạ độ thiết bị (DCS – Device Coordinate System) ……………………………….. 19
2.1.3. toạ độ thiết bị chuẩn (NDCS – Normalized Device Coordinate System)……….. 20
2.2. ĐIỂM VÀ ĐOẠN THẲNG…………………………………………………………………………… 20
2.2.1. Điểm ……………………………………………………………………………………………………. 20
2.2.2. Đoạn thẳng……………………………………………………………………………………………. 20
2.3. CÁC GIẢI THUẬT XÂY DỰNG THỰC THỂ CƠ SỞ ……………………………………. 21
2.3.1. Giải thuật vẽ đoạn thẳng thông thường …………………………………………………….. 21
2.3.2. Giải thuật Bresenham …………………………………………………………………………….. 22
2.3.3. Giải thuật trung điểm-Midpoint……………………………………………………………….. 23
2.3.3. Giải thuật sinh đường tròn (Scan Converting Circles)(Bresenham)………………. 25
2.3.5. Giải thuật sinh đường tròn Midpoint ………………………………………………………… 28
2.3.6. Giải thuật sinh đường ellipse………………………………………………………………….. 30
2.3.7. Giải thuật sinh ký tự ……………………………………………………………………………… 33
2.3.8. Giải thuật sinh đa giác (Polygon) …………………………………………………………….. 34
Mục lục
3
Tóm tắt chương: ………………………………………………………………………………………………… 39
Bài tập:………………………………………………………………………………………………………………39
CHƯƠNG 3: CÁC PHÉP BIẾN ĐỔI ĐỒ HOẠ………………………………………………………… 41
3.1. CÁC PHÉP BIẾN ĐỔI HÌNH HỌC HAI CHIỀU……………………………………………. 41
3.1.1. Phép biến đổi Affine (Affine Transformations) …………………………………………. 41
3.1.2. Các phép biến đổi đối tượng……………………………………………………………………. 41
3.2. TỌA ĐỘ ĐỒNG NHẤT VÀ CÁC PHÉP BIẾN ĐỔI ……………………………………… 45
3.2.1. Toạ độ đồng nhất …………………………………………………………………………………… 45
3.2.2. Phép biến đổi với toạ độ đồng nhất ………………………………………………………….. 46
3.2.3. Cài đặt c/c++ cho phép quay tam giác quanh 1 điểm (xq,yq): ……………………… 47
3.3. CÁC PHÉP BIẾN ĐỔI HÌNH HỌC BA CHIỀU……………………………………………… 48
3.3.1.Biểu diễn điểm trong không gian 3 chiều…………………………………………………… 48
3.3.2. Phép tịnh tiến………………………………………………………………………………………… 48
3.3.3. Phép tỉ lệ………………………………………………………………………………………………. 48
3.3.4. Phép biến dạng………………………………………………………………………………………. 49
3.3.5. Phép lấy đối xứng………………………………………………………………………………….. 49
3.3.6. Phép quay 3 chiều………………………………………………………………………………….. 49
3.3.7. Cài đặt bằng c/c++ như sau: ……………………………………………………………………. 53
Tóm tắt: ……………………………………………………………………………………………………………. 54
Bài tập:………………………………………………………………………………………………………………54
CHƯƠNG 4: CÁC GIẢI THUẬT ĐỒ HOẠ CƠ SỞ …………………………………………………. 57
4.1. MÔ HÌNH CHUYỂN ĐỔI GIỮA BA HỆ THỐNG TOẠ ĐỘ…………………………… 57
4.1.1. Mô hình chuyển đổi……………………………………………………………………………….. 57
4.1.2. Phép ánh xạ từ cửa sổ vào khung nhìn ……………………………………………………… 57
4.2. CÁC GIẢI THUẬT XÉN TIẢ (CLIPPING) …………………………………………………… 59
4.2.1. Khái niệm …………………………………………………………………………………………….. 59
4.2.2. Clipping điểm ……………………………………………………………………………………….. 59
4.2.3. Xén tỉa đoạn thẳng…………………………………………………………………………………. 59
4.2.4. Giải thuật xén tỉa đa giác (Sutherland Hodgman) ………………………………………. 66
Tóm tắt chương: ………………………………………………………………………………………………… 70
Bài tập:………………………………………………………………………………………………………………70
CHƯƠNG 5: PHÉP CHIẾU –PROJECTION……………………………………………………………. 71
5.1. KHÁI NIỆM CHUNG………………………………………………………………………………….. 71
5.1.1.Nguyên lý về 3D (three-Dimension) …………………………………………………………. 71
5.1.2. Đặc điểm của kỹ thuật đồ hoạ 3D…………………………………………………………….. 71
5.1.3.Các phương pháp hiển thị 3D…………………………………………………………………… 71
5.2.PHÉP CHIẾU ………………………………………………………………………………………………. 72
5.3. PHÉP CHIẾU SONG SONG (Parallel Projections )…………………………………………. 74
Mục lục
4
5.3.1.Phép chiếu trực giao (Orthographic projection) ………………………………………….. 74
5.3.2. Phép chiếu trục luợng (Axonometric) ………………………………………………………. 75
5.3.3. Phép chiếu xiên – Oblique ………………………………………………………………………. 78
5.4. PHÉP CHIẾU PHỐI CẢNH (Perspective Projection) ………………………………………. 79
5.4.1. Phép chiếu phối cảnh một tâm chiếu ………………………………………………………… 80
5.4.2. Phép chiếu phối cảnh hai tâm chiếu …………………………………………………………. 81
5.4.3. Phép chiếu phối cảnh ba tâm chiếu ………………………………………………………….. 83
Tóm tắt chương: ………………………………………………………………………………………………… 83
Bài tập:………………………………………………………………………………………………………………83
CHƯƠNG 6: MÀU SẮC TRONG ĐỒ HOẠ ……………………………………………………………. 85
6.1. ÁNH SÁNG VÀ MÀU SẮC (light and color)…………………………………………………. 85
6.1.1. Quan niệm về ánh sáng…………………………………………………………………………… 85
6.1.2. Yếu tố vật lý …………………………………………………………………………………………. 85
6.1.3. Cảm nhận màu sắc của con người (Physiology – Sinh lý – Human Vision) ……. 87
6.1.4. Các đặc trưng cơ bản của ánh sáng…………………………………………………………… 89
6.2. ÁNH SÁNG ĐƠN SẮC ……………………………………………………………………………….. 89
6.2.1. Cường độ sáng và cách tính…………………………………………………………………….. 90
6.2.2. Phép hiệu chỉnh gama…………………………………………………………………………….. 90
6.2.3. Xấp xỉ bán tông – halftone ………………………………………………………………………. 91
6.2.4. Ma trận Dither và phép lấy xấp xỉ bán tông ………………………………………………. 93
6.3. CÁC HỆ MÀU TRONG MÀN HÌNH ĐỒ HỌA……………………………………………… 93
6.3.1. Mô hình màu RGB (Red, Green, Blue – đỏ, lục, lam)…………………………………. 94
6.3.2. Mô hình màu CMY (Cyan, Magenta, Yellow – xanh tím, Đỏ tươi, vàng) ……… 94
6.3.3. Mô hình màu YIQ…………………………………………………………………………………. 95
3.4. Mô hình màu HSV (Hue, Saturation,Value) – Mỹ thuật…………………………………. 96
6.3.5. Biểu đồ màu CIE (1931 – Commission Internationale de l’Eclairage)………….. 97
6.4. CHUYỂN ĐỔI GIỮA CÁC HỆ MÀU …………………………………………………………. 100
6.4.1. Chuyển đổi HSV – RGB……………………………………………………………………….. 100
6.4.2. Chuyển đổi RGB sang XYZ………………………………………………………………….. 101
Tóm tắt: ………………………………………………………………………………………………………….. 102
Bài tập:……………………………………………………………………………………………………………. 102
CHƯƠNG 7: ĐƯỜNG CONG VÀ MẶT CONG TRONG 3D ………………………………….. 104
7.1. ĐƯỜNG CONG – CURVE …………………………………………………………………………. 104
7.1.1. Điểm biểu diễn đường cong (curve represents points )……………………………. 104
7.1.2. Đường cong đa thức bậc ba tham biến ……………………………………………………. 104
7.1.3. Đường cong Hermite ……………………………………………………………………………. 105
7.1.4. Đường cong Bezier………………………………………………………………………………. 106
7.1.5. Đường cong B-spline……………………………………………………………………………. 108
Mục lục
5
7.2. MÔ HÌNH BỀ MẶT (Surface) VÀ CÁC PHƯƠNG PHÁP XÂY DỰNG ………… 114
7.2.1. Các khái niệm cơ bản …………………………………………………………………………… 114
7.2.2. Biểu diễn mảnh tứ giác…………………………………………………………………………. 115
7.2.3. Mô hình hoá các mặt cong (Surface Patches)…………………………………………… 117
7.2.4. Mặt từ các đường cong …………………………………………………………………………. 120
Tóm tắt: ………………………………………………………………………………………………………….. 125
Bài tập:……………………………………………………………………………………………………………. 125
CHƯƠNG 8: ÁNH SÁNG ……………………………………………………………………………………. 127
8.1. GIỚI THIỆU……………………………………………………………………………………………… 127
8.1.1. Mục tiêu chính trong đồ họa máy tính…………………………………………………….. 127
8.1.2. Các giải pháp trong đồ họa máy tính………………………………………………………. 127
8.2. CÁC KỸ THUẬT CHIẾU SÁNG TRONG ĐỒ HỌA MÁY TÍNH………………….. 129
8.2.1. Đánh giá về cường độ ánh sáng……………………………………………………………… 129
8.2.2. Cường độ ánh sáng ………………………………………………………………………………. 130
8.2.3. Những thuộc tính bao quanh của vật chất ……………………………………………….. 131
8.2.4. Thuộc tính khuếch tán của vật chất ………………………………………………………… 132
8.2.5. Sự tương tác bề mặt/ánh sáng………………………………………………………………… 133
8.2.6. Sự khúc xạ và sự truyền sáng ………………………………………………………………… 133
8.3. CÁC CÔNG NGHỆ……………………………………………………………………………………. 134
8.3.1. Raytracing…………………………………………………………………………………………… 134
8.3.2. Radiosity…………………………………………………………………………………………….. 138
8.3.3. Photon Mapping ………………………………………………………………………………….. 143
8.4. SỰ SO SÁNH GIỮA CÁC KỸ THUẬT (COMPARISON OF TECHNIQUES) .. 147
8.4.1. Raytracing…………………………………………………………………………………………… 148
8.4.2. Radiosity…………………………………………………………………………………………….. 148
8.4.3. Photon mapping…………………………………………………………………………………… 148
Tóm tắt……………………………………………………………………………….148
CHƯƠNG 9: HÌNH HỌC FRACTAL ……………………………………………………………………. 150
9.1. SỰ RA ĐỜI VÀ CÁC ỨNG DỤNG CỦA HÌNH HỌC PHÂN HÌNH……………… 150
9.1.1. Sự ra đời của lý thuyết hình học phân hình ……………………………………………… 150
9.1.2. Các ứng dụng tổng quát của hình học phân hình………………………………………. 151
9.2. MỘT SỐ KỸ THUẬT CÀI ĐẶT HÌNH HỌC PHÂN HÌNH…………………………… 151
9.2.1 Họ đường VONKOCK………………………………………………………………………….. 151
9.2.2. Đường SIERPINSKI ……………………………………………………………………………. 154
9.3. CÂY FRACTAL………………………………………………………………………………………… 155
9.3.1. CÁC CÂY THỰC TẾ: …………………………………………………………………………. 155
9.3.2. BIỂN DIỄN TOÁN HỌC CỦA CÂY:……………………………………………………. 156
9.4. TẬP MANDELBROT………………………………………………………………………………… 159
Mục lục
6
9.4.1. Đặt vấn đề…………………………………………………………………………………………… 159
9.4.2. CÔNG THỨC TOÁN HỌC ………………………………………………………………….. 159
9.4.3. THUẬT TOÁN THỂ HIỆN TẬP MANDELBROT…………………………………. 160
9.5. TẬP JULIA……………………………………………………………………………………………….. 161
9.5.1. Đặt vấn đề:………………………………………………………………………………………….. 161
9.5.2. Công thức toán học:……………………………………………………………………………… 161
9.5.3. Thuật toán thể hiện tập Julia………………………………………………………………….. 161
9.6. HỌ CÁC ĐƯỜNG CONG PHOENIX………………………………………………………….. 163
Bài tập…………………………………………………………………………………………………………….. 165
PHỤ LỤC …………………………………………………………………………………………………………… 166
1. Yêu cầu……………………………………………………………………………………………………….. 166
2. Khởi tạo và đóng chế độ đồ hoạ ……………………………………………………………………… 166
3. Các hàm cơ bản ……………………………………………………………………………………………. 167
3.1. Bảng màu của màn hình đồ hoạ………………………………………………………………… 167
3.2. Điểm …………………………………………………………………………………………………….. 168
3.3. Đường…………………………………………………………………………………………………… 168
3.4. Hình chữ nhật ………………………………………………………………………………………… 168
3.5. Hình tròn……………………………………………………………………………………………….. 168
3.6. Đa giác………………………………………………………………………………………………….. 169
3.7. Văn bản…………………………………………………………………………………………………. 169
3.8. Cửa sổ (viewport) …………………………………………………………………………………… 170
3.9. Tạo hình ảnh chuyển động……………………………………………………………………….. 170
Các code chương trình ví dụ cho bài tập lập trình…………………………………………………. 172
Bài 1: quay đối tượng ……………………………………………………………………………………. 172
Bài 2: xén tỉa………………………………………………………………………………………………… 179
Bài 3: Phép chiếu………………………………………………………………………………………….. 180
TÀI LIỆU THAM KHẢO …………………………………………………………………………………….. 185
Chương 1: Tổng quan về kỹ thuật đồ hoạ
7
CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT ĐỒ HOẠ
1.1. CÁC KHÁI NIỆM TỔNG QUAN CỦA KỸ THUẬT ĐỒ HOẠ MÁY
TÍNH (COMPUTER GRAPHICS)
1.1.1. L ịch sử phát triển
Lịch sử của đồ họa máy tính là vào thập niên 1960 được đánh dấu bởi dự án SketchPad
được phát triển tại Học viện Công nghệ Massachusetts (MIT) bởi Ivan Sutherland. Các
thành tựu thu được đã được báo cáo tại hội nghị Fall Joint Computer và đây cũng chính là
sự kiện lần đầu tiên người ta có thể tạo mới, hiển thị và thay đổi được dữ liệu hình ảnh
trực tiếp trên màn hình máy tính trong thời gian thực. Hệ thống Sketchpad này đượ
c dùng
để thiết kế hệ thống mạch điện và bao gồm những thành phần sau:
CRT màn hình
Bút sáng và một bàn phím bao gồm các phím chức năng
Máy tính chứa chương trình xử lý các thông tin
Với hệ thống này, người sử dụng có thể vẽ trực tiếp các sơ đồ mạch điện lên màn
hình thông qua bút sáng, chương trình sẽ phân tích và tính toán các thông số cần thiết của
mạch điện do người dùng vẽ nên.
Cũng trong năm 1960 này, William Fetter nhà khoa học người Mỹ. Ông đang
nghiên cứu xây dựng mô hình buồng lái máy bay cho hãng Boeing của Mỹ. Ông dựa trên
hình ảnh ba chiều của mô hình người phi công trong buồng lái của máy bay để xây dựng
nên một mô hình tối ưu cho buồng lái máy bay. Phương pháp này cho phép các nhà thiết
kế quan sát một cách trực quan vị trí của người lái trong khoang. Ông đặt tên cho phương
pháp này là đồ hoạ máy tính (Computer Graphics).
Màn hình là thiết bị thông dụng nhất trong hệ đồ hoạ, các thao tác của hầu hết các
màn hình đề
u dựa trên thiết kế ống tia âm cực CRT (Cathode ray tube).
Kỹ thuật đồ họa được liên tục hoàn thiện vào thập niên 1970 với sự xuất hiện của
các chuẩn đồ họa làm tăng cường khả năng giao tiếp và tái sử dụng của phần mềm cũng
như các thư viện đồ họa.
Sự phát triển vượt bậc của công nghệ vi điện tử và phần cứng máy tính vào th
ập
niên 1980 làm xuất hiện hàng loạt các vỉ mạch hỗ trợ cho việc truy xuất đồ họa đi cùng
với sự giảm giá đáng kể của máy tính cá nhân làm đồ họa ngày càng đi sâu vào cuộc sống
thực tế.
Những năm 1980 có raster graphics (đồ hoạ điểm). Bắt đầu chuẩn đồ hoạ ví dụ như:
GKS(Graphics Kernel System): European effort (kết quả của châu âu), Becomes ISO 2D
standard.
Thập niên 90 phát triển đặc biệt về ph
ần cứng, thiết bị hình học đồ hoạ Silicon. Xuất
hiện các chuẩn công nghiệp: PHIGS (Programmers Hierarchical Interactive Graphics
Standard) xác định các phương pháp chuẩn cho các mô hình thời gian thực và lập trình
hướng đối tượng. Giao diện người máy Human-Computer Interface (HCI).
Chương 1: Tổng quan về kỹ thuật đồ hoạ
8
Ngày nay xuất hiện ảnh hiện thực, cạc đồ hoạ cho máy tính (Graphics cards for
PCs), game boxes và game players. Công nghiệp phim ảnh nhờ vào đồ hoạ máy tính
(Computer graphics becoming routine in movie industry), Maya (thế giới vật chất tri giác
được)….
1.1.2. Kỹ thuật đồ họa vi tính.
Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về cơ sở toán học, các
thuật toán cũng như các kỹ thuật để cho phép tạo, hiển thị và điều khiển hình ảnh trên màn
hình máy tính. Đồ họa máy tính có liên quan ít nhiều đến một số lĩnh vực như đại số, hình
học giải tích, hình học họa hình, quang học,… và kỹ thuật máy tính, đặc biệt là chế tạo
phần c
ứng (các loại màn hình, các thiết bị xuất, nhập, các vỉ mạch đồ họa…).
Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ dùng trong việc
chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình bằng máy tính. Đồ họa máy
tính hay kỹ thuật đồ họa máy tính còn được hiểu dưới dạng phương pháp và kỹ thuật tạo
hình ảnh từ các mô hình toán học mô tả các đối tượng hay dữ liệu lấ
y được từ các đối
tượng trong thực tế.
1.2. CÁC KỸ THUẬT ĐỒ HOẠ
1.2.1. Kỹ thuật đồ hoạ điểm (Sample based-Graphics)
Các mô hình, hình ảnh của các đối tượng được hiển thị thông qua từng pixel (từng
mẫu rời rạc)
Đặc điểm:Có thể thay đổi thuộc tính của từng điểm ảnh rời rạc
o Xoá đi từng pixel của mô hình và hình ảnh các đối tượng.
o Các mô hình hình ảnh được hiển thị như một lưới điểm (grid) các pixel rời
rạc,
o Từ
ng pixel đều có vị trí xác định, được hiển thị với một giá trị rời rạc (số
nguyên) các thông số hiển thị (màu sắc hoặc độ sáng)
Tập hợp tất cả các pixel của grid cho chúng ta mô hình, hình ảnh đối tượng mà
chúng ta muốn hiển thị.
Hình 1.1 Ảnh đồ hoạ điểm
Phương pháp để tạo ra các pixel
Phương pháp dùng phần mềm để vẽ trực tiếp từng pixel một.
Dựa trên các lý thuyết mô phỏng (lý thuyết Fractal, v.v) để xây dựng nên hình ảnh
mô phỏng của sự vật.
Chương 1: Tổng quan về kỹ thuật đồ hoạ
9
Phương pháp rời rạc hoá (số hoá) hình ảnh thực của đối tượng.
Có thể sửa đổi (image editing) hoặc xử lý (image processing) mảng các pixel thu
được theo những phương pháp khác nhau để thu được hình ảnh đặc trưng của đối
tượng.
1.2.2. Kỹ thuật đồ hoạ vector
Hình 1.2 Mô hình đồ hoạ vector
Mô hình hình học (geometrical model) của đối tượng
Xác định các thuộc tính của mô hình hình học này,
Quá trình tô trát (rendering) để hiển thị từng điểm của mô hình, hình ảnh thực của
đối tượng
Ví dụ về hình ảnh đồ hoạ Vector
Hình 1.3 Ví dụ về đồ hoạ vector
Có thể định nghĩa đồ hoạ vector: Đồ hoạ vector = geometrical model + rendering
Các tham
số tô trát
Tô trát
Thiết bị ra
Mô hình
đồ họa
Muscle ModelWireframe Model Skeletal Model
Skin Model Hair Model Render and Touch up
Chương 1: Tổng quan về kỹ thuật đồ hoạ
10
So sánh giữa Raster và Vector Graphics
Đồ hoạ điểm(Raster Graphics)
– Hình ảnh và mô hình của các vật thể được
biểu diễn bởi tập hợp các điểm của lưới (grid)
– Thay đổi thuộc tính của các pixel => thay
đổi từng phần và từng vùng của hình ảnh.
– Copy được các pixel từ một hình ảnh này
sang hình ảnh khác.
Đồ hoạ vector(Vector Graphics)
– Không thay đổi thuộc tính của từng điểm
trực tiếp
– Xử lý với từ
ng thành phần hình học cơ sở
của nó và thực hiện quá trình tô trát và hiển thị
lại.
– Quan sát hình ảnh và mô hình của hình ảnh
và sự vật ở nhiều góc độ khác nhau bằng cách
thay đổi điểm nhìn và góc nhìn.
1.2.3. Phân loại của đồ hoạ máy tính
Phân loại theo các lĩnh vực của đồ hoạ máy tính
Phân loại theo hệ toạ độ
Kỹ thuật đồ hoạ hai chiều:
là kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ hai chiều
(hệ toạ độ phẳng), sử dụng rất nhiều trong kỹ thuật xử lý bản đồ, đồ thị.
Kỹ thuật đồ hoạ ba chiều:
là kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ ba chiều,
đòi hỏi rất nhiều tính toán và phức tạp hơn nhiều so với kỹ thuật đồ hoạ hai chiều.
Các lĩnh vực của đồ hoạ máy tính:
Kỹ thuật xử lý ảnh (Computer Imaging): sau quá trình xử lý ảnh cho ta ảnh số của
đối tượng. Trong quá trình xử lý ảnh sử dụng rất nhiều các kỹ thuậ
t phức tạp: kỹ thuật
khôi phục ảnh, kỹ thuật làm nổi ảnh, kỹ thuật xác định biên ảnh.
Kỹ thuật nhận dạng (Pattern Recognition): từ những ảnh mẫu có sẵn ta phân loại
theo cấu trúc, hoặc theo các tiêu trí được xác định từ trước và bằng các thuật toán chọn lọc
để có thể phân tích hay tổng hợp ảnh đã cho thành một tập hợp các ảnh gốc, các ảnh gốc
Kỹ thuật phân tích và tạo ảnh
Đồ hoạ hoạt hình và nghệ thuật
Kỹ thuật nhận dạng
Xử lý ảnh
đồ hoạ minh hoạ
CAD/CAM System
Kỹ thuật đồ hoạ
Kiến tạo đồ
hoạ
Xử lý đồ
hoạ
Kỹ thuật đồ hoạ
Kỹ thuật đồ hoạ 2 chiều
Kỹ thuật đồ hoạ 3 chiều
Chương 1: Tổng quan về kỹ thuật đồ hoạ
11
này được lưu trong một thư viện và căn cứ vào thư viện này ta xây dựng được các thuật
giải phân tích và tổ hợp ảnh.
Kỹ thuật tổng hợp ảnh (Image Synthesis): là lĩnh vực xây dựng mô hình và hình ảnh
của các vật thể dựa trên các đối tượng và mối quan hệ giữa chúng.
Các hệ CAD/CAM (Computer Aided Design/Computer Aided Manufacture
System): kỹ thuật đồ hoạ tập hợp các công cụ, các kỹ thuật trợ giúp cho thiết kế
các chi
tiết và các hệ thống khác nhau: hệ thống cơ, hệ thống điện, hệ thống điện tử….
Đồ hoạ trình bày (Presentation Graphics): gồm các công cụ giúp hiển thị các số liệu
thí nghiệm một cách trực quan, dựa trên các mẫu đồ thị hoặc các thuật toán có sẵn.
Đồ hoạ hoạt hình và nghệ thuật: bao gồm các công cụ giúp cho các hoạ sĩ, các nhà
thiết kế phim hoạt hình chuyên nghiệp làm các kỹ xảo hoạ
t hình, vẽ tranh… Ví dụ: phần
mềm 3D Studio, 3D Animation, 3D Studio Max.
1.2.4. Các ứng dụng tiêu biểu của kỹ thuật đồ họa
Đồ hoạ máy tính là một trong những lĩnh vực lý thú nhất và phát triển nhanh nhất của tin
học. Ngay từ khi xuất hiện nó đã có sức lôi cuốn mãnh liệt, cuốn hút rất nhiều người ở
nhiều lĩnh vực khác nhau như khoa học, nghệ thuật, kinh doanh, quản lý…Tính hấp dẫn
của nó có thể được minh hoạ rất trực quan thông qua các ứng dụng của nó.
Xây dựng giao diện người dùng (User Interface)
Giao diện đồ
hoạ thực sự là cuộc cách mạng mang lại sự thuận tiện và thoải mái cho
người dùng ứng dụng. Giao diện WYSIWYG và WIMP đang được đa số người dùng ưu
thích nhờ tính thân thiện, dễ sử dụng của nó.
Tạo các biểu đồ trong thương mại, khoa học, kỹ thuật
Các ứng dụng này thường được dùng để tóm lược các dữ liệu về tài chính, thống kê,
kinh tế, khoa học, toán họ
c… giúp cho nghiên cứu, quản lý… một cách có hiệu quả.
Tự động hoá văn phòng và chế bản điện tử
Thiết kế với sự trợ giúp của máy tính (CAD_CAM)
Lĩnh vực giải trí, nghệ thuật và mô phỏng
Điều khiển các quá trình sản xuất (Process Control)
Lĩnh vực bản đồ (Cartography)
Giáo dục và đào tạo
Chương 1: Tổng quan về kỹ thuật đồ hoạ
12
Một số ví dụ của ứng dụng kỹ thuật đồ hoạ:
Hình 1.4 Các ứng dụng của kỹ thuật đồ hoạ
Hình 1.5 Hệ ứng dụng CAD – CAM
Chương 1: Tổng quan về kỹ thuật đồ hoạ
13
1.2.5. Các chuẩn giao diện của hệ đồ hoạ
Mục tiêu căn bản của các chuẩn cho phần mềm đồ hoạ là đảm bảo tính tương thích. Khi
các công cụ được thiết kế với hàm đồ hoạ chuẩn, phần mềm có thể được di chuyển một
cách dễ dàng từ hệ phần cứng này sang hệ phần cứng khác và được dùng trong nhiều cài
đặt và ứng dụng khác nhau.
GKS (Graphics Kernel System): chuẩn xác định các hàm đồ hoạ chuẩn, được thiết
kế như m
ột tập hợp các công cụ đồ hoạ hai chiều và ba chiều.
GKS Functional Description, ANSI X3.124 – 1985.GKS – 3D Functional
Description, ISO Doc #8805:1988.
CGI (Computer Graphics Interface System): hệ chuẩn cho các phương pháp giao
tiếp với các thiết bị ngoại vi.
CGM (Computer Graphics Metafile): xác định các chuẩn cho việc lưu trữ và chuyển
đổi hình ảnh.
VRML (Virtual Reality Modeling Language): ngôn ngữ thực tại ảo, một hướng phát
triển trong công nghệ hiển thị được đề xuất bởi hãng Silicon Graphics, sau đó đã được
chuẩn hóa như một chuẩn công nghiệp.
PHIGS (Programmers Hierarchical Interactive Graphics Standard): xác
định các
phương pháp chuẩn cho các mô hình thời gian thực và lập trình hướng đối tượng.
PHIGS Functional Description, ANSI X3.144 – 1985.+ Functional Description,
1988, 1992.
OPENGL thư viện đồ họa của hãng Silicon Graphics, được xây dựng theo đúng
chuẩn của một hệ đồ họa năm 1993.
DIRECTX thư viện đồ hoạ của hãng Microsoft, Direct X/Direct3D 1997
1.3. PHẦN CỨNG ĐỒ HOẠ (GRAPHICS HARDWARE)
1.3.1. Các thành phần phần cứng của hệ đồ hoạ tương tác
CPU:thực hiện các chương trình ứng dụng.
Bộ xử lý hiển thị (Display Processor): thực hiện công việc hiển thị dữ liệu đồ hoạ.
Bộ nhớ hệ thống (System Memory): chứa các chương trình và dữ liệu đang thực
hiện.
Gói phần mềm đồ hoạ (Graphics Package): cung cấp các hàm đồ hoạ cho chương
trình ứng dụng
Phần mềm ứng dụng (Application Program): phần mềm đồ hoạ
ứng dụng.
Bộ đệm ( Frame buffer): có nhiệm vụ chứa các hình ảnh hiển thị.
Bộ điều khiển màn hình (Video Controller): điều khiển màn hình, chuyển dữ liệu
dạng số ở frame buffer thành các điểm sáng trên màn hình.
Chương 1: Tổng quan về kỹ thuật đồ hoạ
14
Hình 1.6 Các thành phần cứng của hệ đồ hoạ tương tác
1.3.2. Máy in
Dot size: đường kính của một điểm in bé nhất mà máy in có thể in được
Addressability: khả năng địa chỉ hoá các điểm in có thể có trên một đơn vị độ dài (dot per
inch)
Dot size Point per inch
8 – 20/ 100 inch 200, 600
5/1000 inch 1500
Máy vẽ 6,15/1000 inch 1000, 2000
1.3.3. Màn hình CRT
Một chùm các tia điện tử (tia âm cực) phát ra từ một súng điện tử, vượt qua cuộn lái tia dẫn đến vị
trí xác định trên màn hình được phủ một lớp phosphor. Tại mỗi vị trí tương tác với tia điện tử hạt
phosphor sẽ phát lên một chấm sáng nhỏ. Nhưng chấm sáng sẽ mờ dần rất nhanh nên cần có cách
nào nó duy trì ảnh trên màn hình. Một trong các cách là: lặp đi lặp lại nhiều lần việ
c vẽ lại ảnh
thật nhanh bằng cách hướng các tia điện tử trở lại ví trí cũ. Gọi là làm tươi (refresh CRT).
Số lượng tối đa các điểm có thể hiển thị trên một CRT được gọi là độ phân giải
(Resolution). Hay độ phân giải là số lượng các điểm có thể được vẽ theo chiều ngang và
chiều dọc (được xem như tổng số điểm theo mỗi hướng) của màn hình.
Kích thước vật lý của màn hình đồ hoạ được tính từ độ dài của đường chéo màn
hình. Thường dao động từ 12-27 inch, ho
ặc lớn hơn.
Thuộc tính khác của màn hình là tỷ số phương (aspect ratio). Nó là tỷ lệ của các
điểm dọc và các điểm ngang cần để phát sinh các đoạn thẳng có độ dài đơn vị theo cả hai
hướng trên màn hình. Màn hình có tỷ số phương khác một, thì hình vuông hiển thị trên đó
thành hình chữ nhật còn hình tròn thành hình ellipse.
Chương 1: Tổng quan về kỹ thuật đồ hoạ
15
Hình 1.7 Công nghệ màn hình CRT
Màn hình dạng điểm (Raster Display): thường gặp nhất trong số các dạng màn hình
sử dụng CRT trên công nghệ truyền hình. Mỗi điểm trên màn hình được gọi là pixel. Các
thông tin về ảnh hiển thị trên màn hình được lưu trữ trong một vùng bộ nhớ gọi là vùng
đệm làm tươi (Refresh buffer) hay là vùng đệm khung (Frame Buffer). Vùng lưu trữ tập
các giá trị cường độ sáng củ
a toàn bộ các điểm trên màn hình và luôn tồn tại một cách
song ánh giữa mỗi điểm trên màn hình và mỗi phần tử trong vùng này.
Để tạo ra hình ảnh đen trắng, đơn giản chỉ cần lưu thông tin của mỗi Pixel là một bít
(0,1) (xem hình 1.8). Trong trường hợp ảnh nhiều màu thì cần nhiều bít hơn, nếu thông tin
mỗi pixel được lưu bằng b bít thì ta có thể có 2
b
giá trị màu phân biệt cho pixel đó.
SONY Trinitron NEC Hybrid Hitachi EDP Standard Dot-trio
Chương 1: Tổng quan về kỹ thuật đồ hoạ
16
Ví dụ mô hình đồ hoạ điểm ngôi nhà và ngôi sao.
Hình 1.8 Song ánh giữa vùng đệm khung và màn hình
Trong các màn hình màu, người ta định nghĩa tập các màu làm việc trong một bảng
tra (LookUp Table – LUT). Mỗi phần tử của LUT được định nghĩa một bộ ba giá trị
(RGB) mô tả một màu nào đó. Khi cần sử dụng một màu, ta chỉ cần chỉ định số thứ tự
(index) tương ứng của màu đó trong LUT, số phần tử trong bảng LUT chính là số màu có
thể được hiển thị cùng một lúc trên màn hình.
X: 0 ¸ Xmax2 màu/ 1 bit
Y: 0 ¸ Ymax16 màu/ 4 bit ;256 màu/ 8bit
2
16
màu/ 16 bit ; 2
24
màu/ 24 bit
640 x 480 x 16 → Video RAM = 2MB
1024 x 1024 x 24 → Video RAM = 24MB
Việc làm tươi trên màn hình dạng này được thực hiện ở tốc độ 60 – 80 khung/giây.
Đôi khi tốc độ làm tươi còn được biểu diễn bằng đơn vị Hertz (Hz – số chu kỳ trên/giây),
trong đó một chu kỳ tương ứng với một khung (frame). Vậy tốc độ làm tươi 60
khung/giây đơn giản là 60 Hz. Khi đạt đến cuối mỗi dòng quét, tia điện tử quay trở lại
bên trái của màn hình để bắt đầu dòng quét kế tiế
p. Việc quay trở về bên trái màn hình sau
khi làm tươi mỗi dòng quét được gọi là tia hồi ngang (Horizontal retrace). Và tới cuối mỗi
frame, tia điện tử (tia hồi dọc – Vertical retrace) quay trở lại góc bên trái của màn hình để
chuẩn bị bắt đầu frame kế tiếp.
Hình 1.9 Quét mành và quét dòng của màn hình CRT
1.3.4. Màn hình tinh thể lỏng (Liquid Crystal Display – LCD)
Dựa vào công nghệ truyền ánh sáng qua điện cực mà đặt giữa là cuộn dây xoắn. Khi chưa
có từ trường (chưa có dòng điện) ở cuộn dây thì ánh sáng truyền thẳng, khi có từ trường
thì ánh sáng truyền đổi chiều.
Interface to
host computer
Display
processo
(Display
commands
)
(interaction data)
Keyboard
Data input
00000000000000
00000000000100
0000
Bitmap refresh buffer
(the 1’s are accentuated
for contrast)
CRT
Chương 1: Tổng quan về kỹ thuật đồ hoạ
17
Hình 1.10 Công nghệ truyền ánh sáng trong màn hình tinh thể lỏng
CRT Displays (màn hình CRT)
Advantages (ưu điểm)
Đáp ứng nhanh (có độ phân giải cao)
Màu sắc đa dạng (Có độ sâu và rộng)
Màu sắc bão hoà và tự nhiên
Công nghệ không quá đắt và hoàn thiện
Góc nhìn rộng, tương phản và độ sáng cao
Disadvantages (nhược điểm)
Lớn và nặng (typ. 70×70 cm, 15 kg)
Tiêu tốn nguồn điện cao (typ. 140W)
Có hại cho sức khoẻ vì trường điện từ và từ tính
Màn hình nhấp nháy (at 50-80 Hz)
Hình hay b
ị méo tại 4 góc
LCD Displays (màn hình tinh thể lỏng)
Advantages (ưu điểm)
Hình dáng nhỏ, trọng lượng nhẹ (approx 1/6 of
CRT, typ. 1/5 of CRT)
Tiêu tốn nguồn thấp (typ. 1/4 of CRT)
Màn hình phẳng tuyệt đối nên không méo tại
các góc
Màu sắc đều, ảnh sinh động
Không bị hiệu ứng điện từ trường
Có thể màn hình vừa lớn vừa rộng (>20 inch)
Disadvantages (nhược điểm)
Giá thành cao (presently 3x CRT)
Góc nhìn hẹp hơn (typ. +/- 50 degrees)
độ tương phản thấp (typ. 1:100)
độ chói (độ ng
ời) thấp hơn (typ. 200 cd/m
2
)
Tóm tắt chương:
Sự ra đời của đồ hoạ máy tính thực sự là cuộc cách mạng trong giao tiếp giữa người dùng
và máy tính. Với lượng thông tin trực quan, đa dạng và phong phú được truyền tải qua
hình ảnh. Các ứng dụng đồ hoạ máy tính đã lôi cuốn nhiều người nhờ tính thân thiện, dễ
dùng, kích thích khả năng sáng tạo và tăng đáng kể hiệu suất làm việc.
Chương 1: Tổng quan về kỹ thuật đồ hoạ
18
Đồ hoạ máy tính ngày nay được được ứng dụng rất rộng rãi trong nhiều lĩnh vực
khoa học, kỹ thuật, nghệ thuật, kinh doanh, quản lý…Các ứng dụng đồ hoạ rất đa dạng,
phong phú và phát triển liên tục không ngừng. Ngày nay, hầu như không có chương trình
ứng dụng nào mà không sử dụng kỹ thuật đồ hoạ để làm tăng tính hấp dẫn cho mình.
Một hệ thống đồ hoạ bao giờ cũng g
ồm hai phần chính đó là phần cứng và phần
mềm. Phần cứng bao gồm các thiết bị hiển thị (thiết bị xuất) và các thiết bị nhập. Tiêu
biểu nhất là màn hình, có hai loại màn hình thông dụng là CRT và LCD.
Bài tập:
1. Cấu tạo và nguyên lý hoạt động của màn hình dạng điểm. Nêu các khái niệm
vùng đệm khung, độ phân giải, tỷ số phương…. của màn hình loại này?
2. Ý nghĩa và hoạt động của bảng tra LUT?
3. Tính Video Ram của các màn hình lần lượt có độ phân giải là 640×480,
1024×768, 1280×1024 mà có mỗi pixel được mô tả lần lượt là 8bít, 12 bit, 24
bit.
4. Nếu chúng ta dùng các giá trị 12bit cho mỗi pixel trong một bảng tham chiếu
lookup table, có bao nhiêu hạng mục mà lookup table có được?
5. T
ại sao phải chuẩn hoá các phần mềm đồ hoạ? Liệt kê các chuẩn hóa đó.
Chương 2: Các giải thuật sinh thực thể cơ sở
19
CHƯƠNG 2: CÁC GIẢI THUẬT SINH THỰC THỂ CƠ SỞ
2.1. CÁC HỆ THỐNG TOẠ ĐỘ TRONG ĐỒ HOẠ
Trong lĩnh vực kỹ thuật đồ họa, chúng ta phải hiểu được rằng thực chất của đồ họa là làm
thế nào để có thể mô tả và biến đổi được các đối tượng trong thế giới thực trên máy tính.
Bởi vì, các đối tượng trong thế giới thực được mô tả bằng tọa độ thực. Trong khi đó, hệ
tọa độ thiết bị lại sử dụng hệ
tọa độ nguyên để hiển thị các hình ảnh. Đây chính là vấn đề
cơ bản cần giải quyết. Ngoài ra, còn có một khó khăn khác nữa là với các thiết bị khác
nhau thì có các định nghĩa khác nhau. Do đó, cần có một phương pháp chuyển đổi tương
ứng giữa các hệ tọa độ và đối tượng phải được định nghĩa bởi các thành phần đơn giản
như thế nào để có thể mô tả
gần đúng với hình ảnh thực bên ngoài.
Hai mô hình cơ bản của ứng dụng đồ họa là dựa trên mẫu số hóa và dựa trên đặc
trưng hình học. Trong ứng dụng đồ họa dựa trên mẫu số hóa thì các đối tượng đồ họa
được tạo ra bởi lưới các pixel rời rạc. Các pixel này có thể đuợc tạo ra bằng các chương
trình vẽ, máy quét, … Các pixel này mô tả tọa độ xác định vị trí và giá trị
mẫu. Thuận lợi
của ứng dụng này là dể dàng thay đổi ảnh bằng cách thay đổi màu sắc hay vị trí của các
pixel, hoặc di chuyển vùng ảnh từ nơi này sang nơi khác. Tuy nhiên, điều bất lợi là không
thể xem xét đối tượng từ các góc nhìn khác nhau. Ứng dụng đồ họa dựa trên đặc trưng
hình học bao gồm các đối tượng đồ họa cơ sở như đoạn thẳng, đa giác,…. Chúng
được lưu
trữ bằng các mô hình và các thuộc tính. Ví dụ : đoạn thẳng được mô hình bằng hai điểm
đầu và cuối, có thuộc tính như màu sắc, độ dày. Người sử dụng không thao tác trực tiếp
trên các pixel mà thao tác trên các thành phần hình học của đối tượng.
2.1.1. Hệ toạ độ thực (WCS – World Coordinate System)
Một trong những hệ tọa độ thực thường được dùng để mô tả các đối tượng trong thế giới
thực là hệ tọa độ Descartes. Với hệ tọa độ này, mỗi điểm P được biểu diễn bằng một cặp
tọa độ P(x
p
,y
p
,z
p
) với x
p
, y
p
,z
p
∈
R
Hình 2.1 Hệ tọa độ thực.
Ox,Oy, Oz là trục toạ độ
x
p ,
y
p,
z
p
: toạ độ của P
2.1.2. Hệ toạ độ thiết bị (DCS – Device Coordinate System)
Hệ tọa độ thiết bị (device coordinates) được dùng cho một thiết bị xuất cụ thể nào đó, ví
dụ như máy in, màn hình,.. Trong hệ tọa độ thiết bị thì các điểm cũng được mô tả bởi cặp
Chương 2: Các giải thuật sinh thực thể cơ sở
20
tọa độ (x,y). Tuy nhiên, khác với hệ tọa độ thực là x, y
∈
N. Điều này có nghĩa là các
điểm trong hệ tọa độ thực được định nghĩa liên tục, còn các điểm trong hệ tọa độ thiết bị
là rời rạc. Ngoài ra, các tọa độ x, y của hệ tọa độ thiết bị chỉ biểu diễn được trong một giới
hạn nào đó của N. Ví dụ : Độ phân giải của màn hình trong chế độ đồ họa là 640×480. Khi
đó, x
∈
(0,639) và y
∈
(0,479) (xem hình 2.2).
Hình 2.2 Hệ tọa độ trên màn hình
2.1.3. toạ độ thiết bị chuẩn (NDCS – Normalized Device Coordinate System)
Do cách định nghĩa các hệ tọa độ thiết bị khác nhau nên một hình ảnh hiển thị được trên
thiết bị này là chính xác thì chưa chắc hiển thị chính xác trên thiết bị khác. Người ta xây
dựng một hệ tọa độ thiết bị chuẩn đại diện chung cho tất cả các thiết bị để có thể mô tả các
hình ảnh mà không phụ thuộc vào bất kỳ thiết bị nào.
Trong hệ tọa độ chu
ẩn, các tọa độ x, y sẽ được gán các giá trị trong đoạn từ [0,1].
Như vậy, vùng không gian của hệ tọa độ chuẩn chính là hình vuông đơn vị có góc trái
dưới (0, 0) và góc phải trên là (1, 1).
Quá trình mô tả các đối tượng thực như sau (xem hình 2.3):
Hình 2.3 Hệ tọa độ trên màn hình
.
2.2. ĐIỂM VÀ ĐOẠN THẲNG
2.2.1. Điểm
Trong hệ toạ độ hai chiều (mặt phẳng) thì điểm được biểu diễn P(x,y), ngoài ra nó còn có tính
chất màu sắc. Ví dụ để vẽ một điểm ta có hàm putpixel(x,y,color).
2.2.2. Đoạn thẳng
Biểu diễn tường minh: y = f(x)
Một đoạn thẳng được xác định nếu biết 2 điểm thuộc nó. Phương trình đoạn thẳng đi
qua 2 điểm P (x
1
,y
1
) và Q(x
2
,y
2
) như sau:
Chương 2: Các giải thuật sinh thực thể cơ sở
21
(y-y
1
)/( x-x
1
) = ( y
2
-y
1
)/( x
2
-x
1
)
(y-y
1
)(x
2
-x
1
)=(x-x
1
)(y
2
-y
1
)
(x
2
-x
1
)y=(y
2
-y
1
)x + y
1
(x
2
-x
1
) – x
1
(y
2
-y
1
)
y = ((y
2
-y
1
)/(x
2
-x
1
))x + y
1
– ((y
2
-y
1
)/(x
2
-x
1
))x
1
y = kx + b
k = (y
2
-y
1
)/(x
2
-x
1
) Độ dốc hay hệ số góc của đường
b = y
1
– kx
1
Đoạn chắn trên trục y
∆y = k∆x (tức là khi x thay đổi thì y thay đổi theo)
Hình 2.4 Vẽ đoạn thẳng PQ
Biểu diễn không tường minh:
ax+by+c=0
Ta có : (y
2
-y
1
)x – (x
2
-x
1
)y + (x
2
-x
1
)y
1
– (y
2
-y
1
)x
1
= 0
(y
2
-y
1
)x – (x
2
-x
1
)y + x
2
y
1
– x
1
y
2
= 0
hay ax + by + c = 0
Trong đó a = (y
2
-y
1
), b = -(x
2
-x
1
) và c = x
2
y
1
– x
1
y
2
Biểu diễn thông qua tham số:
P(u) = P
1
+ u(P
2
– P
1
) có u ∈[0,1]
x(u) = x
1
+ u( x
2
– x
1
)
y (u)= y
1
+ u( y
2
– y
1
)
2.3. CÁC GIẢI THUẬT XÂY DỰNG THỰC THỂ CƠ SỞ
2.3.1. Giải thuật vẽ đoạn thẳng thông thường
Nguyên lý chung: cho một thành phần toạ độ x hay y biến đổi theo từng đơn vị và tính độ
nguyên còn lại sao cho gần với toạ độ thực nhất.
Ta có
()
11
12
12
yxx
xx
yy
y −−
−
−
=
Cho x thay đổi tìm y, trong bài này cho x
1
thay đổi tiến tới x
2
ta chọn đơn vị nhỏ
nhất của màn hình ∆x=1.
Giải thuật thông thường:
void dline(int x1,int y1, int x2,int y2, int color) {
float y; int x;
for (x=x1; x<=x2; x++) {
y = y1 + (x-x1)*(y2-y1)/(x2-x1) ;
putpixel(x, Round(y), color );
} }
b
P(x
1
, y
1
)
Q(x
2
, y
2
)
Chương 2: Các giải thuật sinh thực thể cơ sở
22
2.3.2. Giải thuật Bresenham
1960 Bresenham thuộc IBM tìm ra các điểm gần với đường thẳng dựa trên độ phân giải
hữu hạn. Giải thuật này loại bỏ được các phép toán chia và phép toán làm tròn như ta đã
thấy trong giải thuật trên.
Xét đoạn thẳng với 0 < k < 1
Hình 2.5 Mô tả giải thuật Bresenham (0Gọi (x
i+1
,y
i+1
) là điểm thuộc đoạn thẳng, ta có y
i+1
=k(x
i
+1)+b
d
1
= y
i+1
– y
i
= k(x
i
+1) + b – y
i
d
2
= y
i
+1 – y
i+1
= y
i
+1 – k(x
i
+ 1) – b
– Nếu d
1
<= d
2
=> y
i
+1
= y
i
– Ngược lại d
1
> d
2
=> y
i
+1
= y
i
+1
Đặt D = d
1
– d
2
= 2k(x
i
+ 1) – 2y
i
+ 2b – 1
Có k=∆y/∆x và đặt P
i
= ∆xD = ∆x (d
1
– d
2
)
P
i
= ∆x(2∆y/∆x(x
i
+1)- 2y
i
+2b-1) = 2∆yx
i
+2∆y -2∆xy
i
+ 2b∆x -∆x
Ta tính bước tiếp:
P
i+1
= 2∆yx
i+1
+2∆y -2∆xy
i+1
+ 2b∆x -∆x
P
i+1
– P
i
= -2∆x(y
i+1
-y
i
) + 2∆y(x
i+1
-x
i
)
Có x
i+1
=x
i
+1 nên:
P
i+1
– P
i
= – 2∆x(y
i+1
-y
i
) + 2∆y = 2∆y – 2∆x(y
i+1
-y
i
)
Nếu P
i
<= 0 thì y
i
+1
= y
i
→ P
i+1
= P
i
+ 2∆y
Nếu P
i
> 0 thì y
i+1
= y
i
+1 → P
i+1
= P
i
+ 2∆y – 2∆x
Tính giá trị đầu: P
1
?
P
1
= ∆x(d
1
– d
2
) = ∆x(2∆y/∆x(x
1
+1)- 2y
1
+2b-1)
= 2∆yx
1
+2∆y -2∆xy
1
+ 2b∆x -∆x
Có y
1
=kx
1
+ b = ∆y/∆x x
1
+b
P
1
= 2∆yx
1
+2∆y -2∆x((∆y/∆x)x
1
+b) + 2b∆x -∆x
= 2∆yx
1
+2∆y -2∆yx
1
– 2b∆x + 2b∆x -∆x
P
1
= 2∆y – ∆x
Chương 2: Các giải thuật sinh thực thể cơ sở
23
Hình 2.6 Sơ đồ khối thuật toán
Bresenham cho đường thẳng
void Bre_line(int x1, int y1,
int x2, int y2, int c){
int x, y, dx, dy,p;
y = y1;
dx = x2 – x1;
dy = y2 – y1;
p = 2*dy – dx;
for (x=x1; x<=x2; x++) {
putpixel(x, y, c);
if (p <= 0)
p+=2*dy; //p=p+2dy
else {
p+=2*(dy-dx);//p=p+2dy-2dx
y++;
}
}
}
Xét 4 trường hợp của k :
01 -1int p=2*dy-dx; int p=dy-2*dx; int p=2*dy+dx; int p=-dy-2*dx;
if(p>=0) {
p+=2*dy-2*dx;
y++;
} else
p+=2*dy;
if(p<=0){
p+=2*dy-2*dx;
x++;
} else
p+=-2*dx;
if(p<=0) {
p+=2*dy+2*dx;
y–;
} else
p+=2*dy;
if(p>=0) {
p+=-2*dy-2*dx;
x–;
} else
p+=-2*dx;
2.3.3. Giải thuật trung điểm-Midpoint
Jack Bresenham 1965/Pitteway 1967, áp dụng cho việc sinh các đường thẳng và đường
tròn 1985. Xét trung điểm của đoạn AB (M)
Nếu M ở trên đoạn thẳng AB thì chọn B còn
M ở dưới đoạn thẳng AB chọn A
Công thức đơn giản hơn, tạo được các điểm tương tự như với Bresenham
d = f(x
i
+ 1, y
i
+ 1/2) là trung điểm của đoạn AB
P > 0
B¾t ®Çu
x = x1 ;
y = y1;
dx = x2 – x1;
dy = y2 – y1;
P = dx – 2dy;
Putpixel (x ,y);
x < x2
KÕt thóc
P = P – 2dy
P = P – 2dy + 2dx
y = y + 1
yes
no
No
yes
x = x + 1
p= p+2dy-2dx
p=p+2dy
x=x1;y=y1;
dx=x2-x1;
dy=y2-y1;
p<=0
Chương 2: Các giải thuật sinh thực thể cơ sở
24
Hình 2.7 Mô tả giải thuật Midpoint
So sánh hay kiểm tra M sẽ được thay bằng việc xét giá trị d.
d > 0 điểm B được chọn khi đó y
i
+1
= y
i
d < 0 điểm A được chọn khi đó y
i+1
= y
i
+ 1
Trường hợp d = 0 chúng ta có thể chọn điểm bất kỳ hoặc A, hoặc B.
Sử dụng phương pháp biểu diễn không tường minh
f(x,y)= ax +by +c =0 (1) dx =x
2
-x
1
dy =y
2
-y
1
Biểu diễn tường minh:
y= (dy/dx)x +B hay f(x,y)=0= xdy – ydx +Bdx (2)
So sánh (1) và (2) ta có a=dy, b=-dx và c= Bdx
Có f(x,y)=0 với mọi (x,y) thuộc đường thẳng
Đặt d
i
=f(x
i
+1,y
i
+1/2) = a(x
i
+1) +b(y
i
+1/2) +c
Nếu chọn A (d<0) thì M sẽ tăng theo 2 hướng x,y
d
i+1
=f(x
i
+2,y
i
+3/2) = a(x
i
+2) +b(y
i
+3/2) +c
d
i+1
– d
i
= a+b Hay d
i+1
= d
i
+ dy – dx
Nếu chọn B (d>0) thì M sẽ tăng theo x
d
i+1
=f(x
i
+2,y
i
+1/2) = a(x
i
+2) +b(y
i
+1/2) +c
d
i+1
– d
i
= a Hay d
i+1
= d
i
+ dy
Tính d
1
? d
1
= f(x
1
+1,y
1
+1/2) = a(x
1
+1) +b(y
1
+1/2) +c
= ax
1
+by
1
+c +a +1/2 b = f(x
1
,y
1
) +a +b/2
Có (x
1
,y
1
) là điểm bắt đầu, nằm trên đoạn thẳng nên f(x
1
,y
1
) = 0
Vậy d
1
= a+ b/2 = dy – dx/2
A
B
d<0 d>0
A
Chương 2: Các giải thuật sinh thực thể cơ sở
25
Hình 2.8 Sơ đồ khối giải thuật Midpiont
cho đoạn thẳng
/* Thuat toan Midpoint de ve
doan thang (0void Mid
_line(int x1, int y1,
int x2, int y2, int c)
{ int x, y, dx, dy,d;
y = y1;
dx = x2 – x1;
dy = y2 – y1;
d= dy – dx/2;
for (x=x1; x<=x2; x++) {
putpixel(x, y, c);
if (d <= 0)
d = d + dy;
else {
y ++;
d = d + dy – dx;
}
}
}
2.3.3. Giải thuật sinh đường tròn (Scan Converting Circles)(Bresenham)
Phương trình đường tròn đi qua tâm có toạ độ (x
c
,y
c
) là:
(x – x
c
)
2
+ (y – y
c
)
2
= r
2
Hình tròn là hình đối xứng tám cách
Hình 2.9 Hình tròn đối xứng 8 phần
Để đơn giản ta xét tâm trùng gốc 0 thì phương trình đơn giản : x
2
+ y
2
= r
2
Ta xét các điểm tạo ra từ góc phần tư thứ 2: từ 90
0
đến 45
0
, thực hiện theo hướng
+x, -y
d <= 0
B¾t ®Çu
x = x1 ;
y = y1;
dx = x2 – x1;
dy = y2 – y1;
d = dy – dx/2;
Putpixel (x ,y);
x < x2
KÕt thóc
d = d + dy
d = d + dy – dx
y = y + 1
yes
no
No
yes
x = x + 1
những sai sót, rất mong nhận được sự góp phần chân thành từ quý bạn đọc. Xin chân thành cám ơn. Tác giảMục lụcMỤC LỤCLỜI NÓI ĐẦU ………………………………………………………………………………………………………… 1M ỤC LỤC ……………………………………………………………………………………………………………… 2CH ƯƠNG 1 : TỔNG QUAN VỀ KỸ THUẬT ĐỒ HOẠ ……………………………………………… 71.1. CÁC KHÁI NIỆM TỔNG QUAN CỦA KỸ THUẬT ĐỒ HOẠ MÁY TÍNH ( COMPUTER GRAPHICS ) …………………………………………………………………………………………… 71.1.1. L ịch sử tăng trưởng ……………………………………………………………………………………. 71.1.2. Kỹ thuật đồ họa vi tính. ………………………………………………………………………….. 81.2. CÁC KỸ THUẬT ĐỒ HOẠ …………………………………………………………………………… 81.2.1. Kỹ thuật đồ hoạ điểm ( Sample based-Graphics ) …………………………………………. 81.2.2. Kỹ thuật đồ hoạ vector ……………………………………………………………………………… 91.2.3. Phân loại của đồ hoạ máy tính ………………………………………………………………… 101.2.4. Các ứng dụng tiêu biểu vượt trội của kỹ thuật đồ họa ………………………………………………. 111.2.5. Các chuẩn giao diện của hệ đồ hoạ …………………………………………………………… 131.3. PHẦN CỨNG ĐỒ HOẠ ( GRAPHICS HARDWARE ) …………………………………….. 131.3.1. Các thành phần phần cứng của hệ đồ hoạ tương tác ……………………………………. 131.3.2. Máy in ………………………………………………………………………………………………….. 141.3.3. Màn hình CRT. ……………………………………………………………………………………… 141.3.4. Màn hình tinh thể lỏng ( Liquid Crystal Display – LCD ) …………………………….. 16T óm tắt chương : ………………………………………………………………………………………………… 17B ài tập : ……………………………………………………………………………………………………………… 18CH ƯƠNG 2 : CÁC GIẢI THUẬT SINH THỰC THỂ CƠ SỞ …………………………………….. 192.1. CÁC HỆ THỐNG TOẠ ĐỘ TRONG ĐỒ HOẠ ………………………………………………. 192.1.1. Hệ toạ độ thực ( WCS – World Coordinate System ) ……………………………………. 192.1.2. Hệ toạ độ thiết bị ( DCS – Device Coordinate System ) ……………………………….. 192.1.3. toạ độ thiết bị chuẩn ( NDCS – Normalized Device Coordinate System ) ……….. 202.2. ĐIỂM VÀ ĐOẠN THẲNG …………………………………………………………………………… 202.2.1. Điểm ……………………………………………………………………………………………………. 202.2.2. Đoạn thẳng ……………………………………………………………………………………………. 202.3. CÁC GIẢI THUẬT XÂY DỰNG THỰC THỂ CƠ SỞ ……………………………………. 212.3.1. Giải thuật vẽ đoạn thẳng thường thì …………………………………………………….. 212.3.2. Giải thuật Bresenham …………………………………………………………………………….. 222.3.3. Giải thuật trung điểm-Midpoint ……………………………………………………………….. 232.3.3. Giải thuật sinh đường tròn ( Scan Converting Circles ) ( Bresenham ) ………………. 252.3.5. Giải thuật sinh đường tròn Midpoint ………………………………………………………… 282.3.6. Giải thuật sinh đường ellipse ………………………………………………………………….. 302.3.7. Giải thuật sinh ký tự ……………………………………………………………………………… 332.3.8. Giải thuật sinh đa giác ( Polygon ) …………………………………………………………….. 34M ục lụcTóm tắt chương : ………………………………………………………………………………………………… 39B ài tập : ……………………………………………………………………………………………………………… 39CH ƯƠNG 3 : CÁC PHÉP BIẾN ĐỔI ĐỒ HOẠ ………………………………………………………… 413.1. CÁC PHÉP BIẾN ĐỔI HÌNH HỌC HAI CHIỀU ……………………………………………. 413.1.1. Phép đổi khác Affine ( Affine Transformations ) …………………………………………. 413.1.2. Các phép đổi khác đối tượng người dùng ……………………………………………………………………. 413.2. TỌA ĐỘ ĐỒNG NHẤT VÀ CÁC PHÉP BIẾN ĐỔI ……………………………………… 453.2.1. Toạ độ giống hệt …………………………………………………………………………………… 453.2.2. Phép biến hóa với toạ độ giống hệt ………………………………………………………….. 463.2.3. Cài đặt c / c + + cho phép quay tam giác quanh 1 điểm ( xq, yq ) : ……………………… 473.3. CÁC PHÉP BIẾN ĐỔI HÌNH HỌC BA CHIỀU ……………………………………………… 483.3.1. Biểu diễn điểm trong khoảng trống 3 chiều …………………………………………………… 483.3.2. Phép tịnh tiến ………………………………………………………………………………………… 483.3.3. Phép tỉ lệ ………………………………………………………………………………………………. 483.3.4. Phép biến dạng ………………………………………………………………………………………. 493.3.5. Phép lấy đối xứng ………………………………………………………………………………….. 493.3.6. Phép quay 3 chiều ………………………………………………………………………………….. 493.3.7. Cài đặt bằng c / c + + như sau : ……………………………………………………………………. 53T óm tắt : ……………………………………………………………………………………………………………. 54B ài tập : ……………………………………………………………………………………………………………… 54CH ƯƠNG 4 : CÁC GIẢI THUẬT ĐỒ HOẠ CƠ SỞ …………………………………………………. 574.1. MÔ HÌNH CHUYỂN ĐỔI GIỮA BA HỆ THỐNG TOẠ ĐỘ …………………………… 574.1.1. Mô hình quy đổi ……………………………………………………………………………….. 574.1.2. Phép ánh xạ từ hành lang cửa số vào khung nhìn ……………………………………………………… 574.2. CÁC GIẢI THUẬT XÉN TIẢ ( CLIPPING ) …………………………………………………… 594.2.1. Khái niệm …………………………………………………………………………………………….. 594.2.2. Clipping điểm ……………………………………………………………………………………….. 594.2.3. Xén tỉa đoạn thẳng …………………………………………………………………………………. 594.2.4. Giải thuật xén tỉa đa giác ( Sutherland Hodgman ) ………………………………………. 66T óm tắt chương : ………………………………………………………………………………………………… 70B ài tập : ……………………………………………………………………………………………………………… 70CH ƯƠNG 5 : PHÉP CHIẾU – PROJECTION. …………………………………………………………… 715.1. KHÁI NIỆM CHUNG. …………………………………………………………………………………. 715.1.1. Nguyên lý về 3D ( three-Dimension ) …………………………………………………………. 715.1.2. Đặc điểm của kỹ thuật đồ hoạ 3D …………………………………………………………….. 715.1.3. Các chiêu thức hiển thị 3D …………………………………………………………………… 715.2. PHÉP CHIẾU ………………………………………………………………………………………………. 725.3. PHÉP CHIẾU SONG SONG ( Parallel Projections ) …………………………………………. 74M ục lục5. 3.1. Phép chiếu trực giao ( Orthographic projection ) ………………………………………….. 745.3.2. Phép chiếu trục luợng ( Axonometric ) ………………………………………………………. 755.3.3. Phép chiếu xiên – Oblique ………………………………………………………………………. 785.4. PHÉP CHIẾU PHỐI CẢNH ( Perspective Projection ) ………………………………………. 795.4.1. Phép chiếu phối cảnh một tâm chiếu ………………………………………………………… 805.4.2. Phép chiếu phối cảnh hai tâm chiếu …………………………………………………………. 815.4.3. Phép chiếu phối cảnh ba tâm chiếu ………………………………………………………….. 83T óm tắt chương : ………………………………………………………………………………………………… 83B ài tập : ……………………………………………………………………………………………………………… 83CH ƯƠNG 6 : MÀU SẮC TRONG ĐỒ HOẠ ……………………………………………………………. 856.1. ÁNH SÁNG VÀ MÀU SẮC ( light and color ) …………………………………………………. 856.1.1. Quan niệm về ánh sáng …………………………………………………………………………… 856.1.2. Yếu tố vật lý …………………………………………………………………………………………. 856.1.3. Cảm nhận sắc tố của con người ( Physiology – Sinh lý – Human Vision ) ……. 876.1.4. Các đặc trưng cơ bản của ánh sáng …………………………………………………………… 896.2. ÁNH SÁNG ĐƠN SẮC ……………………………………………………………………………….. 896.2.1. Cường độ sáng và cách tính …………………………………………………………………….. 906.2.2. Phép hiệu chỉnh gama …………………………………………………………………………….. 906.2.3. Xấp xỉ bán tông – halftone ………………………………………………………………………. 916.2.4. Ma trận Dither và phép lấy xê dịch bán tông ………………………………………………. 936.3. CÁC HỆ MÀU TRONG MÀN HÌNH ĐỒ HỌA ……………………………………………… 936.3.1. Mô hình màu RGB ( Red, Green, Blue – đỏ, lục, lam ) …………………………………. 946.3.2. Mô hình màu CMY ( Cyan, Magenta, Yellow – xanh tím, Đỏ tươi, vàng ) ……… 946.3.3. Mô hình màu YIQ. ………………………………………………………………………………… 953.4. Mô hình màu HSV ( Hue, Saturation, Value ) – Mỹ thuật …………………………………. 966.3.5. Biểu đồ màu CIE ( 1931 – Commission Internationale de l’Eclairage ) ………….. 976.4. CHUYỂN ĐỔI GIỮA CÁC HỆ MÀU …………………………………………………………. 1006.4.1. Chuyển đổi HSV – RGB. ………………………………………………………………………. 1006.4.2. Chuyển đổi RGB sang XYZ. …………………………………………………………………. 101T óm tắt : ………………………………………………………………………………………………………….. 102B ài tập : ……………………………………………………………………………………………………………. 102CH ƯƠNG 7 : ĐƯỜNG CONG VÀ MẶT CONG TRONG 3D ………………………………….. 1047.1. ĐƯỜNG CONG – CURVE …………………………………………………………………………. 1047.1.1. Điểm màn biểu diễn đường cong ( curve represents points ) ……………………………. 1047.1.2. Đường cong đa thức bậc ba tham biến ……………………………………………………. 1047.1.3. Đường cong Hermite ……………………………………………………………………………. 1057.1.4. Đường cong Bezier ………………………………………………………………………………. 1067.1.5. Đường cong B-spline ……………………………………………………………………………. 108M ục lục7. 2. MÔ HÌNH BỀ MẶT ( Surface ) VÀ CÁC PHƯƠNG PHÁP XÂY DỰNG ………… 1147.2.1. Các khái niệm cơ bản …………………………………………………………………………… 1147.2.2. Biểu diễn mảnh tứ giác …………………………………………………………………………. 1157.2.3. Mô hình hoá những mặt cong ( Surface Patches ) …………………………………………… 1177.2.4. Mặt từ những đường cong …………………………………………………………………………. 120T óm tắt : ………………………………………………………………………………………………………….. 125B ài tập : ……………………………………………………………………………………………………………. 125CH ƯƠNG 8 : ÁNH SÁNG ……………………………………………………………………………………. 1278.1. GIỚI THIỆU ……………………………………………………………………………………………… 1278.1.1. Mục tiêu chính trong đồ họa máy tính …………………………………………………….. 1278.1.2. Các giải pháp trong đồ họa máy tính ………………………………………………………. 1278.2. CÁC KỸ THUẬT CHIẾU SÁNG TRONG ĐỒ HỌA MÁY TÍNH ………………….. 1298.2.1. Đánh giá về cường độ ánh sáng ……………………………………………………………… 1298.2.2. Cường độ ánh sáng ………………………………………………………………………………. 1308.2.3. Những thuộc tính xung quanh của vật chất ……………………………………………….. 1318.2.4. Thuộc tính khuếch tán của vật chất ………………………………………………………… 1328.2.5. Sự tương tác mặt phẳng / ánh sáng ………………………………………………………………… 1338.2.6. Sự khúc xạ và sự truyền sáng ………………………………………………………………… 1338.3. CÁC CÔNG NGHỆ ……………………………………………………………………………………. 1348.3.1. Raytracing …………………………………………………………………………………………… 1348.3.2. Radiosity …………………………………………………………………………………………….. 1388.3.3. Photon Mapping ………………………………………………………………………………….. 1438.4. SỰ SO SÁNH GIỮA CÁC KỸ THUẬT ( COMPARISON OF TECHNIQUES ) .. 1478.4.1. Raytracing …………………………………………………………………………………………… 1488.4.2. Radiosity …………………………………………………………………………………………….. 1488.4.3. Photon mapping …………………………………………………………………………………… 148T óm tắt … … … … … … … … … … … … … … … … … … … … … … … … … … … … … …. 148CH ƯƠNG 9 : HÌNH HỌC FRACTAL ……………………………………………………………………. 1509.1. SỰ RA ĐỜI VÀ CÁC ỨNG DỤNG CỦA HÌNH HỌC PHÂN HÌNH ……………… 1509.1.1. Sự sinh ra của kim chỉ nan hình học phân hình ……………………………………………… 1509.1.2. Các ứng dụng tổng quát của hình học phân hình ………………………………………. 1519.2. MỘT SỐ KỸ THUẬT CÀI ĐẶT HÌNH HỌC PHÂN HÌNH …………………………… 1519.2.1 Họ đường VONKOCK. …………………………………………………………………………. 1519.2.2. Đường SIERPINSKI ……………………………………………………………………………. 1549.3. CÂY FRACTAL. ……………………………………………………………………………………….. 1559.3.1. CÁC CÂY THỰC TẾ : …………………………………………………………………………. 1559.3.2. BIỂN DIỄN TOÁN HỌC CỦA CÂY : ……………………………………………………. 1569.4. TẬP MANDELBROT. ……………………………………………………………………………….. 159M ục lục9. 4.1. Đặt yếu tố …………………………………………………………………………………………… 1599.4.2. CÔNG THỨC TOÁN HỌC ………………………………………………………………….. 1599.4.3. THUẬT TOÁN THỂ HIỆN TẬP MANDELBROT. ………………………………… 1609.5. TẬP JULIA. ………………………………………………………………………………………………. 1619.5.1. Đặt yếu tố : ………………………………………………………………………………………….. 1619.5.2. Công thức toán học : ……………………………………………………………………………… 1619.5.3. Thuật toán bộc lộ tập Julia ………………………………………………………………….. 1619.6. HỌ CÁC ĐƯỜNG CONG PHOENIX. …………………………………………………………. 163B ài tập …………………………………………………………………………………………………………….. 165PH Ụ LỤC …………………………………………………………………………………………………………… 1661. Yêu cầu ……………………………………………………………………………………………………….. 1662. Khởi tạo và đóng chính sách đồ hoạ ……………………………………………………………………… 1663. Các hàm cơ bản ……………………………………………………………………………………………. 1673.1. Bảng màu của màn hình hiển thị đồ hoạ ………………………………………………………………… 1673.2. Điểm …………………………………………………………………………………………………….. 1683.3. Đường …………………………………………………………………………………………………… 1683.4. Hình chữ nhật ………………………………………………………………………………………… 1683.5. Hình tròn ……………………………………………………………………………………………….. 1683.6. Đa giác ………………………………………………………………………………………………….. 1693.7. Văn bản …………………………………………………………………………………………………. 1693.8. Cửa sổ ( viewport ) …………………………………………………………………………………… 1703.9. Tạo hình ảnh hoạt động ……………………………………………………………………….. 170C ác code chương trình ví dụ cho bài tập lập trình …………………………………………………. 172B ài 1 : quay đối tượng người tiêu dùng ……………………………………………………………………………………. 172B ài 2 : xén tỉa ………………………………………………………………………………………………… 179B ài 3 : Phép chiếu ………………………………………………………………………………………….. 180T ÀI LIỆU THAM KHẢO …………………………………………………………………………………….. 185C hương 1 : Tổng quan về kỹ thuật đồ hoạCHƯƠNG 1 : TỔNG QUAN VỀ KỸ THUẬT ĐỒ HOẠ1. 1. CÁC KHÁI NIỆM TỔNG QUAN CỦA KỸ THUẬT ĐỒ HOẠ MÁYTÍNH ( COMPUTER GRAPHICS ) 1.1.1. L ịch sử phát triểnLịch sử của đồ họa máy tính là vào thập niên 1960 được lưu lại bởi dự án Bất Động Sản SketchPadđược tăng trưởng tại Học viện Công nghệ Massachusetts ( MIT ) bởi Ivan Sutherland. Cácthành tựu thu được đã được báo cáo giải trình tại hội nghị Fall Joint Computer và đây cũng chính làsự kiện lần tiên phong người ta hoàn toàn có thể tạo mới, hiển thị và biến hóa được tài liệu hình ảnhtrực tiếp trên màn hình hiển thị máy tính trong thời hạn thực. Hệ thống Sketchpad này được dùngđể phong cách thiết kế mạng lưới hệ thống mạch điện và gồm có những thành phần sau : CRT màn hình hiển thị Bút sáng và một bàn phím gồm có những phím tính năng Máy tính chứa chương trình giải quyết và xử lý những thông tinVới mạng lưới hệ thống này, người sử dụng hoàn toàn có thể vẽ trực tiếp những sơ đồ mạch điện lên mànhình trải qua bút sáng, chương trình sẽ nghiên cứu và phân tích và giám sát những thông số kỹ thuật thiết yếu củamạch điện do người dùng vẽ nên. Cũng trong năm 1960 này, William Fetter nhà khoa học người Mỹ. Ông đangnghiên cứu kiến thiết xây dựng quy mô buồng lái máy bay cho hãng Boeing của Mỹ. Ông dựa trênhình ảnh ba chiều của quy mô người phi công trong buồng lái của máy bay để xây dựngnên một quy mô tối ưu cho buồng lái máy bay. Phương pháp này được cho phép những nhà thiếtkế quan sát một cách trực quan vị trí của người lái trong khoang. Ông đặt tên cho phươngpháp này là đồ hoạ máy tính ( Computer Graphics ). Màn hình là thiết bị thông dụng nhất trong hệ đồ hoạ, những thao tác của hầu hết cácmàn hình đều dựa trên phong cách thiết kế ống tia âm cực CRT ( Cathode ray tube ). Kỹ thuật đồ họa được liên tục hoàn thành xong vào thập niên 1970 với sự Open củacác chuẩn đồ họa làm tăng cường năng lực tiếp xúc và tái sử dụng của ứng dụng cũngnhư những thư viện đồ họa. Sự tăng trưởng vượt bậc của công nghệ tiên tiến vi điện tử và phần cứng máy tính vào thậpniên 1980 làm Open hàng loạt những vỉ mạch tương hỗ cho việc truy xuất đồ họa đi cùngvới sự giảm giá đáng kể của máy tính cá thể làm đồ họa ngày càng đi sâu vào cuộc sốngthực tế. Những năm 1980 có raster graphics ( đồ hoạ điểm ). Bắt đầu chuẩn đồ hoạ ví dụ như : GKS ( Graphics Kernel System ) : European effort ( tác dụng của châu âu ), Becomes ISO 2D standard. Thập niên 90 tăng trưởng đặc biệt quan trọng về phần cứng, thiết bị hình học đồ hoạ Silicon. Xuấthiện những chuẩn công nghiệp : PHIGS ( Programmers Hierarchical Interactive GraphicsStandard ) xác lập những chiêu thức chuẩn cho những quy mô thời hạn thực và lập trìnhhướng đối tượng người dùng. Giao diện người máy Human-Computer Interface ( HCI ). Chương 1 : Tổng quan về kỹ thuật đồ hoạNgày nay xuất hiện ảnh hiện thực, cạc đồ hoạ cho máy tính ( Graphics cards forPCs ), game boxes và game players. Công nghiệp phim ảnh nhờ vào đồ hoạ máy tính ( Computer graphics becoming routine in movie industry ), Maya ( quốc tế vật chất tri giácđược ) …. 1.1.2. Kỹ thuật đồ họa vi tính. Đồ họa máy tính là một nghành nghề dịch vụ của khoa học máy tính nghiên cứu và điều tra về cơ sở toán học, cácthuật toán cũng như những kỹ thuật để được cho phép tạo, hiển thị và tinh chỉnh và điều khiển hình ảnh trên mànhình máy tính. Đồ họa máy tính có tương quan không ít đến 1 số ít nghành như đại số, hìnhhọc giải tích, hình học họa hình, quang học, … và kỹ thuật máy tính, đặc biệt quan trọng là chế tạophần cứng ( những loại màn hình hiển thị, những thiết bị xuất, nhập, những vỉ mạch đồ họa … ). Theo nghĩa rộng hơn, đồ họa máy tính là giải pháp và công nghệ tiên tiến dùng trong việcchuyển đổi qua lại giữa tài liệu và hình ảnh trên màn hình hiển thị bằng máy tính. Đồ họa máytính hay kỹ thuật đồ họa máy tính còn được hiểu dưới dạng chiêu thức và kỹ thuật tạohình ảnh từ những quy mô toán học miêu tả những đối tượng người tiêu dùng hay tài liệu lấy được từ những đốitượng trong thực tiễn. 1.2. CÁC KỸ THUẬT ĐỒ HOẠ1. 2.1. Kỹ thuật đồ hoạ điểm ( Sample based-Graphics ) Các quy mô, hình ảnh của những đối tượng người dùng được hiển thị trải qua từng px ( từngmẫu rời rạc ) Đặc điểm : Có thể đổi khác thuộc tính của từng điểm ảnh rời rạco Xoá đi từng px của quy mô và hình ảnh những đối tượng người dùng. o Các quy mô hình ảnh được hiển thị như một lưới điểm ( grid ) những px rờirạc, o Từng px đều có vị trí xác lập, được hiển thị với một giá trị rời rạc ( sốnguyên ) những thông số kỹ thuật hiển thị ( sắc tố hoặc độ sáng ) Tập hợp toàn bộ những px của grid cho tất cả chúng ta quy mô, hình ảnh đối tượng người tiêu dùng màchúng ta muốn hiển thị. Hình 1.1 Ảnh đồ hoạ điểmPhương pháp để tạo ra những px Phương pháp dùng ứng dụng để vẽ trực tiếp từng px một. Dựa trên những triết lý mô phỏng ( triết lý Fractal, v.v ) để thiết kế xây dựng nên hình ảnhmô phỏng của sự vật. Chương 1 : Tổng quan về kỹ thuật đồ hoạ Phương pháp rời rạc hoá ( số hoá ) hình ảnh thực của đối tượng người tiêu dùng. Có thể sửa đổi ( image editing ) hoặc giải quyết và xử lý ( image processing ) mảng những px thuđược theo những chiêu thức khác nhau để thu được hình ảnh đặc trưng của đốitượng. 1.2.2. Kỹ thuật đồ hoạ vectorHình 1.2 Mô hình đồ hoạ vector Mô hình hình học ( geometrical Model ) của đối tượng người tiêu dùng Xác định những thuộc tính của quy mô hình học này, Quá trình tô trát ( rendering ) để hiển thị từng điểm của quy mô, hình ảnh thực củađối tượngVí dụ về hình ảnh đồ hoạ VectorHình 1.3 Ví dụ về đồ hoạ vectorCó thể định nghĩa đồ hoạ vector : Đồ hoạ vector = geometrical Model + renderingCác thamsố tô trátTô trátThiết bị raMô hìnhđồ họaMuscle ModelWireframe Model Skeletal ModelSkin Model Hair Model Render and Touch upChương 1 : Tổng quan về kỹ thuật đồ hoạ10So sánh giữa Raster và Vector GraphicsĐồ hoạ điểm ( Raster Graphics ) – Hình ảnh và quy mô của những vật thể đượcbiểu diễn bởi tập hợp những điểm của lưới ( grid ) – Thay đổi thuộc tính của những px => thayđổi từng phần và từng vùng của hình ảnh. – Copy được những px từ một hình ảnh nàysang hình ảnh khác. Đồ hoạ vector ( Vector Graphics ) – Không biến hóa thuộc tính của từng điểmtrực tiếp – Xử lý với từng thành phần hình học cơ sởcủa nó và thực thi quy trình tô trát và hiển thịlại. – Quan sát hình ảnh và quy mô của hình ảnhvà sự vật ở nhiều góc nhìn khác nhau bằng cáchthay đổi điểm nhìn và góc nhìn. 1.2.3. Phân loại của đồ hoạ máy tínhPhân loại theo những nghành nghề dịch vụ của đồ hoạ máy tínhPhân loại theo hệ toạ độ Kỹ thuật đồ hoạ hai chiều : là kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ hai chiều ( hệ toạ độ phẳng ), sử dụng rất nhiều trong kỹ thuật giải quyết và xử lý map, đồ thị. Kỹ thuật đồ hoạ ba chiều : là kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ ba chiều, yên cầu rất nhiều đo lường và thống kê và phức tạp hơn nhiều so với kỹ thuật đồ hoạ hai chiều. Các nghành của đồ hoạ máy tính : Kỹ thuật giải quyết và xử lý ảnh ( Computer Imaging ) : sau quy trình giải quyết và xử lý ảnh cho ta ảnh số củađối tượng. Trong quy trình giải quyết và xử lý ảnh sử dụng rất nhiều những kỹ thuật phức tạp : kỹ thuậtkhôi phục ảnh, kỹ thuật làm nổi ảnh, kỹ thuật xác lập biên ảnh. Kỹ thuật nhận dạng ( Pattern Recognition ) : từ những ảnh mẫu có sẵn ta phân loạitheo cấu trúc, hoặc theo những tiêu trí được xác lập từ trước và bằng những thuật toán chọn lọcđể hoàn toàn có thể nghiên cứu và phân tích hay tổng hợp ảnh đã cho thành một tập hợp những ảnh gốc, những ảnh gốcKỹ thuật nghiên cứu và phân tích và tạo ảnhĐồ hoạ phim hoạt hình và nghệ thuậtKỹ thuật nhận dạngXử lý ảnhđồ hoạ minh hoạCAD / CAM SystemKỹ thuật đồ hoạKiến tạo đồhoạXử lý đồhoạKỹ thuật đồ hoạKỹ thuật đồ hoạ 2 chiềuKỹ thuật đồ hoạ 3 chiềuChương 1 : Tổng quan về kỹ thuật đồ hoạ11này được lưu trong một thư viện và địa thế căn cứ vào thư viện này ta thiết kế xây dựng được những thuậtgiải nghiên cứu và phân tích và tổng hợp ảnh. Kỹ thuật tổng hợp ảnh ( Image Synthesis ) : là nghành thiết kế xây dựng quy mô và hình ảnhcủa những vật thể dựa trên những đối tượng người dùng và mối quan hệ giữa chúng. Các hệ CAD / CAM ( Computer Aided Design / Computer Aided ManufactureSystem ) : kỹ thuật đồ hoạ tập hợp những công cụ, những kỹ thuật trợ giúp cho thiết kếcác chitiết và những mạng lưới hệ thống khác nhau : mạng lưới hệ thống cơ, mạng lưới hệ thống điện, mạng lưới hệ thống điện tử …. Đồ hoạ trình diễn ( Presentation Graphics ) : gồm những công cụ giúp hiển thị những số liệuthí nghiệm một cách trực quan, dựa trên những mẫu đồ thị hoặc những thuật toán có sẵn. Đồ hoạ phim hoạt hình và nghệ thuật và thẩm mỹ : gồm có những công cụ giúp cho những hoạ sĩ, những nhàthiết kế phim hoạt hình chuyên nghiệp làm những kỹ xảo hoạt hình, vẽ tranh … Ví dụ : phầnmềm 3D Studio, 3D Animation, 3D Studio Max. 1.2.4. Các ứng dụng tiêu biểu vượt trội của kỹ thuật đồ họaĐồ hoạ máy tính là một trong những nghành nghề dịch vụ lý thú nhất và tăng trưởng nhanh nhất của tinhọc. Ngay từ khi Open nó đã có sức hấp dẫn mãnh liệt, hấp dẫn rất nhiều người ởnhiều nghành khác nhau như khoa học, thẩm mỹ và nghệ thuật, kinh doanh thương mại, quản trị … Tính hấp dẫncủa nó hoàn toàn có thể được minh hoạ rất trực quan trải qua những ứng dụng của nó. Xây dựng giao diện người dùng ( User Interface ) Giao diện đồhoạ thực sự là cuộc cách mạng mang lại sự thuận tiện và tự do chongười dùng ứng dụng. Giao diện WYSIWYG và WIMP đang được hầu hết người dùng ưuthích nhờ tính thân thiện, dễ sử dụng của nó. Tạo những biểu đồ trong thương mại, khoa học, kỹ thuậtCác ứng dụng này thường được dùng để tóm lược những tài liệu về kinh tế tài chính, thống kê, kinh tế tài chính, khoa học, toán học … giúp cho điều tra và nghiên cứu, quản trị … một cách có hiệu suất cao. Tự động hoá văn phòng và chế bản điện tử Thiết kế với sự trợ giúp của máy tính ( CAD_CAM ) Lĩnh vực vui chơi, nghệ thuật và thẩm mỹ và mô phỏng Điều khiển những quy trình sản xuất ( Process Control ) Lĩnh vực map ( Cartography ) Giáo dục và đào tạoChương 1 : Tổng quan về kỹ thuật đồ hoạ12Một số ví dụ của ứng dụng kỹ thuật đồ hoạ : Hình 1.4 Các ứng dụng của kỹ thuật đồ hoạHình 1.5 Hệ ứng dụng CAD – CAMChương 1 : Tổng quan về kỹ thuật đồ hoạ131. 2.5. Các chuẩn giao diện của hệ đồ hoạMục tiêu cơ bản của những chuẩn cho ứng dụng đồ hoạ là bảo vệ tính thích hợp. Khicác công cụ được phong cách thiết kế với hàm đồ hoạ chuẩn, ứng dụng hoàn toàn có thể được vận động và di chuyển mộtcách thuận tiện từ hệ phần cứng này sang hệ phần cứng khác và được dùng trong nhiều càiđặt và ứng dụng khác nhau. GKS ( Graphics Kernel System ) : chuẩn xác lập những hàm đồ hoạ chuẩn, được thiếtkế như một tập hợp những công cụ đồ hoạ hai chiều và ba chiều. GKS Functional Description, ANSI X3. 124 – 1985. GKS – 3D FunctionalDescription, ISO Doc # 8805 : 1988. CGI ( Computer Graphics Interface System ) : hệ chuẩn cho những chiêu thức giaotiếp với những thiết bị ngoại vi. CGM ( Computer Graphics Metafile ) : xác lập những chuẩn cho việc tàng trữ và chuyểnđổi hình ảnh. VRML ( Virtual Reality Modeling Language ) : ngôn từ thực tại ảo, một hướng pháttriển trong công nghệ tiên tiến hiển thị được yêu cầu bởi hãng Silicon Graphics, sau đó đã đượcchuẩn hóa như một chuẩn công nghiệp. PHIGS ( Programmers Hierarchical Interactive Graphics Standard ) : xácđịnh cácphương pháp chuẩn cho những quy mô thời hạn thực và lập trình hướng đối tượng người tiêu dùng. PHIGS Functional Description, ANSI X3. 144 – 1985. + Functional Description, 1988, 1992. OPENGL thư viện đồ họa của hãng Silicon Graphics, được kiến thiết xây dựng theo đúngchuẩn của một hệ đồ họa năm 1993. DIRECTX thư viện đồ hoạ của hãng Microsoft, Direct X / Direct3D 19971.3. PHẦN CỨNG ĐỒ HOẠ ( GRAPHICS HARDWARE ) 1.3.1. Các thành phần phần cứng của hệ đồ hoạ tương tácCPU : thực thi những chương trình ứng dụng. Bộ giải quyết và xử lý hiển thị ( Display Processor ) : triển khai việc làm hiển thị tài liệu đồ hoạ. Bộ nhớ mạng lưới hệ thống ( System Memory ) : chứa những chương trình và tài liệu đang thựchiện. Gói ứng dụng đồ hoạ ( Graphics Package ) : cung ứng những hàm đồ hoạ cho chươngtrình ứng dụngPhần mềm ứng dụng ( Application Program ) : ứng dụng đồ hoạứng dụng. Bộ đệm ( Frame buffer ) : có trách nhiệm chứa những hình ảnh hiển thị. Bộ tinh chỉnh và điều khiển màn hình hiển thị ( Video Controller ) : tinh chỉnh và điều khiển màn hình hiển thị, chuyển dữ liệudạng số ở frame buffer thành những điểm sáng trên màn hình hiển thị. Chương 1 : Tổng quan về kỹ thuật đồ hoạ14Hình 1.6 Các thành phần cứng của hệ đồ hoạ tương tác1. 3.2. Máy inDot size : đường kính của một điểm in bé nhất mà máy in hoàn toàn có thể in đượcAddressability : năng lực địa chỉ hoá những điểm in hoàn toàn có thể có trên một đơn vị chức năng độ dài ( dot perinch ) Dot size Point per inch8 – 20 / 100 inch 200, 6005 / 1000 inch 1500M áy vẽ 6,15 / 1000 inch 1000, 20001.3.3. Màn hình CRTMột chùm những tia điện tử ( tia âm cực ) phát ra từ một súng điện tử, vượt qua cuộn lái tia dẫn đến vịtrí xác lập trên màn hình hiển thị được phủ một lớp phosphor. Tại mỗi vị trí tương tác với tia điện tử hạtphosphor sẽ phát lên một chấm sáng nhỏ. Nhưng chấm sáng sẽ mờ dần rất nhanh nên cần có cáchnào nó duy trì ảnh trên màn hình hiển thị. Một trong những cách là : lặp đi lặp lại nhiều lần việc vẽ lại ảnhthật nhanh bằng cách hướng những tia điện tử trở lại ví trí cũ. Gọi là làm tươi ( refresh CRT ). Số lượng tối đa những điểm hoàn toàn có thể hiển thị trên một CRT được gọi là độ phân giải ( Resolution ). Hay độ phân giải là số lượng những điểm hoàn toàn có thể được vẽ theo chiều ngang vàchiều dọc ( được xem như tổng số điểm theo mỗi hướng ) của màn hình hiển thị. Kích thước vật lý của màn hình hiển thị đồ hoạ được tính từ độ dài của đường chéo mànhình. Thường xê dịch từ 12-27 inch, hoặc lớn hơn. Thuộc tính khác của màn hình hiển thị là tỷ số phương ( aspect ratio ). Nó là tỷ suất của cácđiểm dọc và những điểm ngang cần để phát sinh những đoạn thẳng có độ dài đơn vị chức năng theo cả haihướng trên màn hình hiển thị. Màn hình có tỷ số phương khác một, thì hình vuông vắn hiển thị trên đóthành hình chữ nhật còn hình tròn trụ thành hình ellipse. Chương 1 : Tổng quan về kỹ thuật đồ hoạ15Hình 1.7 Công nghệ màn hình hiển thị CRTMàn hình dạng điểm ( Raster Display ) : thường gặp nhất trong số những dạng màn hìnhsử dụng CRT trên công nghệ tiên tiến truyền hình. Mỗi điểm trên màn hình hiển thị được gọi là px. Cácthông tin về ảnh hiển thị trên màn hình hiển thị được tàng trữ trong một vùng bộ nhớ gọi là vùngđệm làm tươi ( Refresh buffer ) hay là vùng đệm khung ( Frame Buffer ). Vùng tàng trữ tậpcác giá trị cường độ sáng của hàng loạt những điểm trên màn hình hiển thị và luôn sống sót một cáchsong ánh giữa mỗi điểm trên màn hình hiển thị và mỗi thành phần trong vùng này. Để tạo ra hình ảnh đen trắng, đơn thuần chỉ cần lưu thông tin của mỗi Pixel là một bít ( 0,1 ) ( xem hình 1.8 ). Trong trường hợp ảnh nhiều màu thì cần nhiều bít hơn, nếu thông tinmỗi px được lưu bằng b bít thì ta hoàn toàn có thể có 2 giá trị màu phân biệt cho px đó. SONY Trinitron NEC Hybrid Hitachi EDP Standard Dot-trioChương 1 : Tổng quan về kỹ thuật đồ hoạ16Ví dụ quy mô đồ hoạ điểm ngôi nhà và ngôi sao 5 cánh. Hình 1.8 Song ánh giữa vùng đệm khung và màn hìnhTrong những màn hình hiển thị màu, người ta định nghĩa tập những màu thao tác trong một bảngtra ( LookUp Table – LUT ). Mỗi thành phần của LUT được định nghĩa một bộ ba giá trị ( RGB ) diễn đạt một màu nào đó. Khi cần sử dụng một màu, ta chỉ cần chỉ định số thứ tự ( index ) tương ứng của màu đó trong LUT, số thành phần trong bảng LUT chính là số màu cóthể được hiển thị cùng một lúc trên màn hình hiển thị. X : 0 ¸ Xmax2 màu / 1 bitY : 0 ¸ Ymax16 màu / 4 bit ; 256 màu / 8 bit16màu / 16 bit ; 224 màu / 24 bit640 x 480 x 16 → Video RAM = 2MB1024 x 1024 x 24 → Video RAM = 24MBV iệc làm tươi trên màn hình dạng này được triển khai ở vận tốc 60 – 80 khung / giây. Đôi khi vận tốc làm tươi còn được màn biểu diễn bằng đơn vị chức năng Hertz ( Hz – số chu kỳ luân hồi trên / giây ), trong đó một chu kỳ luân hồi tương ứng với một khung ( frame ). Vậy vận tốc làm tươi 60 khung / giây đơn thuần là 60 Hz. Khi đạt đến cuối mỗi dòng quét, tia điện tử quay trở lạibên trái của màn hình hiển thị để mở màn dòng quét sau đó. Việc quay trở về bên trái màn hình hiển thị saukhi làm tươi mỗi dòng quét được gọi là tia hồi ngang ( Horizontal retrace ). Và tới cuối mỗiframe, tia điện tử ( tia hồi dọc – Vertical retrace ) quay trở lại góc bên trái của màn hình hiển thị đểchuẩn bị mở màn frame sau đó. Hình 1.9 Quét mành và quét dòng của màn hình hiển thị CRT1. 3.4. Màn hình tinh thể lỏng ( Liquid Crystal Display – LCD ) Dựa vào công nghệ tiên tiến truyền ánh sáng qua điện cực mà đặt giữa là cuộn dây xoắn. Khi chưacó từ trường ( chưa có dòng điện ) ở cuộn dây thì ánh sáng truyền thẳng, khi có từ trườngthì ánh sáng truyền đổi chiều. Interface tohost computerDisplayprocesso ( Displaycommands ( interaction data ) KeyboardData input00000000000000000000000001000000Bitmap refresh buffer ( the 1 ’ s are accentuatedfor contrast ) CRTChương 1 : Tổng quan về kỹ thuật đồ hoạ17Hình 1.10 Công nghệ truyền ánh sáng trong màn hình hiển thị tinh thể lỏngCRT Displays ( màn hình hiển thị CRT ) Advantages ( ưu điểm ) Đáp ứng nhanh ( có độ phân giải cao ) Màu sắc phong phú ( Có độ sâu và rộng ) Màu sắc bão hoà và tự nhiênCông nghệ không quá đắt và hoàn thiệnGóc nhìn rộng, tương phản và độ sáng caoDisadvantages ( điểm yếu kém ) Lớn và nặng ( typ. 70×70 cm, 15 kg ) Tiêu tốn nguồn điện cao ( typ. 140W ) Có hại cho sức khoẻ vì trường điện từ và từ tínhMàn hình nhấp nháy ( at 50-80 Hz ) Hình hay bị méo tại 4 gócLCD Displays ( màn hình hiển thị tinh thể lỏng ) Advantages ( ưu điểm ) Hình dáng nhỏ, khối lượng nhẹ ( approx 1/6 ofCRT, typ. 1/5 of CRT ) Tiêu tốn nguồn thấp ( typ. 1/4 of CRT ) Màn hình phẳng tuyệt đối nên không méo tạicác gócMàu sắc đều, ảnh sinh độngKhông bị hiệu ứng điện từ trườngCó thể màn hình hiển thị vừa lớn vừa rộng ( > 20 inch ) Disadvantages ( điểm yếu kém ) Giá thành cao ( presently 3 x CRT ) Góc nhìn hẹp hơn ( typ. + / – 50 degrees ) độ tương phản thấp ( typ. 1 : 100 ) độ chói ( độ ngời ) thấp hơn ( typ. 200 cd / mTóm tắt chương : Sự sinh ra của đồ hoạ máy tính thực sự là cuộc cách mạng trong tiếp xúc giữa người dùngvà máy tính. Với lượng thông tin trực quan, phong phú và đa dạng chủng loại được truyền tải quahình ảnh. Các ứng dụng đồ hoạ máy tính đã hấp dẫn nhiều người nhờ tính thân thiện, dễdùng, kích thích năng lực phát minh sáng tạo và tăng đáng kể hiệu suất thao tác. Chương 1 : Tổng quan về kỹ thuật đồ hoạ18Đồ hoạ máy tính ngày này được được ứng dụng rất thoáng đãng trong nhiều lĩnh vựckhoa học, kỹ thuật, nghệ thuật và thẩm mỹ, kinh doanh thương mại, quản trị … Các ứng dụng đồ hoạ rất phong phú, nhiều mẫu mã và tăng trưởng liên tục không ngừng. Ngày nay, hầu hết không có chương trìnhứng dụng nào mà không sử dụng kỹ thuật đồ hoạ để làm tăng tính mê hoặc cho mình. Một mạng lưới hệ thống đồ hoạ khi nào cũng gồm hai phần chính đó là phần cứng và phầnmềm. Phần cứng gồm có những thiết bị hiển thị ( thiết bị xuất ) và những thiết bị nhập. Tiêubiểu nhất là màn hình hiển thị, có hai loại màn hình hiển thị thông dụng là CRT và LCD.Bài tập : 1. Cấu tạo và nguyên tắc hoạt động giải trí của màn hình dạng điểm. Nêu những khái niệmvùng đệm khung, độ phân giải, tỷ số phương …. của màn hình hiển thị loại này ? 2. Ý nghĩa và hoạt động giải trí của bảng tra LUT ? 3. Tính Video Ram của những màn hình hiển thị lần lượt có độ phân giải là 640×480, 1024×768, 1280×1024 mà có mỗi px được diễn đạt lần lượt là 8 bít, 12 bit, 24 bit. 4. Nếu tất cả chúng ta dùng những giá trị 12 bit cho mỗi px trong một bảng tham chiếulookup table, có bao nhiêu khuôn khổ mà lookup table có được ? 5. Tại sao phải chuẩn hoá những ứng dụng đồ hoạ ? Liệt kê những chuẩn hóa đó. Chương 2 : Các giải thuật sinh thực thể cơ sở19CHƯƠNG 2 : CÁC GIẢI THUẬT SINH THỰC THỂ CƠ SỞ2. 1. CÁC HỆ THỐNG TOẠ ĐỘ TRONG ĐỒ HOẠTrong nghành nghề dịch vụ kỹ thuật đồ họa, tất cả chúng ta phải hiểu được rằng thực ra của đồ họa là làmthế nào để hoàn toàn có thể diễn đạt và biến hóa được những đối tượng người dùng trong quốc tế thực trên máy tính. Bởi vì, những đối tượng người dùng trong quốc tế thực được diễn đạt bằng tọa độ thực. Trong khi đó, hệtọa độ thiết bị lại sử dụng hệtọa độ nguyên để hiển thị những hình ảnh. Đây chính là vấn đềcơ bản cần xử lý. Ngoài ra, còn có một khó khăn vất vả khác nữa là với những thiết bị khácnhau thì có những định nghĩa khác nhau. Do đó, cần có một chiêu thức quy đổi tươngứng giữa những hệ tọa độ và đối tượng người dùng phải được định nghĩa bởi những thành phần đơn giảnnhư thế nào để hoàn toàn có thể mô tảgần đúng với hình ảnh thực bên ngoài. Hai quy mô cơ bản của ứng dụng đồ họa là dựa trên mẫu số hóa và dựa trên đặctrưng hình học. Trong ứng dụng đồ họa dựa trên mẫu số hóa thì những đối tượng người dùng đồ họađược tạo ra bởi lưới những px rời rạc. Các px này hoàn toàn có thể đuợc tạo ra bằng những chươngtrình vẽ, máy quét, … Các px này diễn đạt tọa độ xác lập vị trí và giá trịmẫu. Thuận lợicủa ứng dụng này là dể dàng biến hóa ảnh bằng cách đổi khác sắc tố hay vị trí của cácpixel, hoặc vận động và di chuyển vùng ảnh từ nơi này sang nơi khác. Tuy nhiên, điều bất lợi là khôngthể xem xét đối tượng người tiêu dùng từ những góc nhìn khác nhau. Ứng dụng đồ họa dựa trên đặc trưnghình học gồm có những đối tượng người dùng đồ họa cơ sở như đoạn thẳng, đa giác, …. Chúngđược lưutrữ bằng những quy mô và những thuộc tính. Ví dụ : đoạn thẳng được quy mô bằng hai điểmđầu và cuối, có thuộc tính như sắc tố, độ dày. Người sử dụng không thao tác trực tiếptrên những px mà thao tác trên những thành phần hình học của đối tượng người tiêu dùng. 2.1.1. Hệ toạ độ thực ( WCS – World Coordinate System ) Một trong những hệ tọa độ thực thường được dùng để miêu tả những đối tượng người tiêu dùng trong thế giớithực là hệ tọa độ Descartes. Với hệ tọa độ này, mỗi điểm P. được trình diễn bằng một cặptọa độ P. ( x, y, z ) với x, y, zHình 2.1 Hệ tọa độ thực. Ox, Oy, Oz là trục toạ độp, p, : toạ độ của P2. 1.2. Hệ toạ độ thiết bị ( DCS – Device Coordinate System ) Hệ tọa độ thiết bị ( device coordinates ) được dùng cho một thiết bị xuất đơn cử nào đó, vídụ như máy in, màn hình hiển thị, .. Trong hệ tọa độ thiết bị thì những điểm cũng được diễn đạt bởi cặpChương 2 : Các giải thuật sinh thực thể cơ sở20tọa độ ( x, y ). Tuy nhiên, khác với hệ tọa độ thực là x, yN. Điều này có nghĩa là cácđiểm trong hệ tọa độ thực được định nghĩa liên tục, còn những điểm trong hệ tọa độ thiết bịlà rời rạc. Ngoài ra, những tọa độ x, y của hệ tọa độ thiết bị chỉ màn biểu diễn được trong một giớihạn nào đó của N. Ví dụ : Độ phân giải của màn hình hiển thị trong chính sách đồ họa là 640×480. Khiđó, x ( 0,639 ) và y ( 0,479 ) ( xem hình 2.2 ). Hình 2.2 Hệ tọa độ trên màn hình2. 1.3. toạ độ thiết bị chuẩn ( NDCS – Normalized Device Coordinate System ) Do cách định nghĩa những hệ tọa độ thiết bị khác nhau nên một hình ảnh hiển thị được trênthiết bị này là đúng chuẩn thì chưa chắc hiển thị đúng mực trên thiết bị khác. Người ta xâydựng một hệ tọa độ thiết bị chuẩn đại diện thay mặt chung cho toàn bộ những thiết bị để hoàn toàn có thể diễn đạt cáchình ảnh mà không phụ thuộc vào vào bất kể thiết bị nào. Trong hệ tọa độ chuẩn, những tọa độ x, y sẽ được gán những giá trị trong đoạn từ [ 0,1 ]. Như vậy, vùng khoảng trống của hệ tọa độ chuẩn chính là hình vuông vắn đơn vị chức năng có góc tráidưới ( 0, 0 ) và góc phải trên là ( 1, 1 ). Quá trình diễn đạt những đối tượng người tiêu dùng thực như sau ( xem hình 2.3 ) : Hình 2.3 Hệ tọa độ trên màn hình2. 2. ĐIỂM VÀ ĐOẠN THẲNG2. 2.1. ĐiểmTrong hệ toạ độ hai chiều ( mặt phẳng ) thì điểm được màn biểu diễn P. ( x, y ), ngoài những nó còn có tínhchất sắc tố. Ví dụ để vẽ một điểm ta có hàm putpixel ( x, y, color ). 2.2.2. Đoạn thẳng Biểu diễn tường minh : y = f ( x ) Một đoạn thẳng được xác lập nếu biết 2 điểm thuộc nó. Phương trình đoạn thẳng điqua 2 điểm P. ( x, y ) và Q. ( x, y ) như sau : Chương 2 : Các giải thuật sinh thực thể cơ sở21 ( y-y ) / ( x-x ) = ( y-y ) / ( x-x ( y-y ) ( x-x ) = ( x-x ) ( y-y ( x-x ) y = ( y-y ) x + y ( x-x ) – x ( y-yy = ( ( y-y ) / ( x-x ) ) x + y – ( ( y-y ) / ( x-x ) ) xy = kx + bk = ( y-y ) / ( x-x ) Độ dốc hay thông số góc của đườngb = y – kxĐoạn chắn trên trục y ∆ y = k ∆ x ( tức là khi x biến hóa thì y biến hóa theo ) Hình 2.4 Vẽ đoạn thẳng PQ Biểu diễn không tường minh : ax + by + c = 0T a có : ( y-y ) x – ( x-x ) y + ( x-x ) y – ( y-y ) x = 0 ( y-y ) x – ( x-x ) y + x – x = 0 hay ax + by + c = 0T rong đó a = ( y-y ), b = – ( x-x ) và c = x – x Biểu diễn trải qua tham số : P. ( u ) = P + u ( P. – P. ) có u ∈ [ 0,1 ] x ( u ) = x + u ( x – xy ( u ) = y + u ( y – y2. 3. CÁC GIẢI THUẬT XÂY DỰNG THỰC THỂ CƠ SỞ2. 3.1. Giải thuật vẽ đoạn thẳng thông thườngNguyên lý chung : cho một thành phần toạ độ x hay y biến hóa theo từng đơn vị chức năng và tính độnguyên còn lại sao cho gần với toạ độ thực nhất. Ta có ( ) 111212 yxxxxyyy − − Cho x đổi khác tìm y, trong bài này cho xthay đổi tiến tới xta chọn đơn vị chức năng nhỏnhất của màn hình hiển thị ∆ x = 1. Giải thuật thường thì : void dline ( int x1, int y1, int x2, int y2, int color ) { float y ; int x ; for ( x = x1 ; x < = x2 ; x + + ) { y = y1 + ( x-x1 ) * ( y2-y1 ) / ( x2-x1 ) ; putpixel ( x, Round ( y ), color ) ; } } P ( x, yQ ( x, yChương 2 : Các giải thuật sinh thực thể cơ sở222. 3.2. Giải thuật Bresenham1960 Bresenham thuộc IBM tìm ra những điểm gần với đường thẳng dựa trên độ phân giảihữu hạn. Giải thuật này vô hiệu được những phép toán chia và phép toán làm tròn như ta đãthấy trong giải thuật trên. Xét đoạn thẳng với 0 < k < 1H ình 2.5 Mô tả giải thuật Bresenham ( 0 y + 1 = y - trái lại d > d => y + 1 = y + 1 Đặt D = d – d = 2 k ( x + 1 ) – 2 y + 2 b – 1C ó k = ∆ y / ∆ x và đặt P = ∆ xD = ∆ x ( d – d = ∆ x ( 2 ∆ y / ∆ x ( x + 1 ) – 2 y + 2 b – 1 ) = 2 ∆ yx + 2 ∆ y – 2 ∆ xy + 2 b ∆ x – ∆ xTa tính bước tiếp : i + 1 = 2 ∆ yxi + 1 + 2 ∆ y – 2 ∆ xyi + 1 + 2 b ∆ x – ∆ xi + 1 – P = – 2 ∆ x ( yi + 1 – y ) + 2 ∆ y ( xi + 1 – xCó xi + 1 = x + 1 nên : i + 1 – P = – 2 ∆ x ( yi + 1 – y ) + 2 ∆ y = 2 ∆ y – 2 ∆ x ( yi + 1 – yNếu P < = 0 thì y + 1 = y → Pi + 1 = P. + 2 ∆ yNếu P > 0 thì yi + 1 = y + 1 → Pi + 1 = P. + 2 ∆ y – 2 ∆ xTính giá trị đầu : P = ∆ x ( d – d ) = ∆ x ( 2 ∆ y / ∆ x ( x + 1 ) – 2 y + 2 b – 1 ) = 2 ∆ yx + 2 ∆ y – 2 ∆ xy + 2 b ∆ x – ∆ xCó y = kx + b = ∆ y / ∆ x x + b = 2 ∆ yx + 2 ∆ y – 2 ∆ x ( ( ∆ y / ∆ x ) x + b ) + 2 b ∆ x – ∆ x = 2 ∆ yx + 2 ∆ y – 2 ∆ yx – 2 b ∆ x + 2 b ∆ x – ∆ x = 2 ∆ y – ∆ xChương 2 : Các giải thuật sinh thực thể cơ sở23Hình 2.6 Sơ đồ khối thuật toánBresenham cho đường thẳngvoid Bre_line ( int x1, int y1, int x2, int y2, int c ) { int x, y, dx, dy, p ; y = y1 ; dx = x2 – x1 ; dy = y2 – y1 ; p = 2 * dy – dx ; for ( x = x1 ; x < = x2 ; x + + ) { putpixel ( x, y, c ) ; if ( p < = 0 ) p + = 2 * dy ; / / p = p + 2 dyelse { p + = 2 * ( dy-dx ) ; / / p = p + 2 dy - 2 dxy + + ; Xét 4 trường hợp của k : 01 - 1 = 0 ) { p + = 2 * dy-2 * dx ; y + + ; } elsep + = 2 * dy ; if ( p < = 0 ) { p + = 2 * dy-2 * dx ; x + + ; } elsep + = - 2 * dx ; if ( p < = 0 ) { p + = 2 * dy + 2 * dx ; y -- ; } elsep + = 2 * dy ; if ( p > = 0 ) { p + = – 2 * dy-2 * dx ; x — ; } elsep + = – 2 * dx ; 2.3.3. Giải thuật trung điểm-MidpointJack Bresenham 1965 / Pitteway 1967, vận dụng cho việc sinh những đường thẳng và đườngtròn 1985. Xét trung điểm của đoạn AB ( M ) Nếu M ở trên đoạn thẳng AB thì chọn B cònM ở dưới đoạn thẳng AB chọn ACông thức đơn thuần hơn, tạo được những điểm tương tự như như với Bresenhamd = f ( x + 1, y + 50% ) là trung điểm của đoạn ABP > 0B ¾t ® Çux = x1 ; y = y1 ; dx = x2 – x1 ; dy = y2 – y1 ; P = dx – 2 dy ; Putpixel ( x, y ) ; x < x2KÕt thócP = P - 2 dyP = P - 2 dy + 2 dxy = y + 1 yesnoNoyesx = x + 1 p = p + 2 dy - 2 dxp = p + 2 dyx = x1 ; y = y1 ; dx = x2-x1 ; dy = y2-y1 ; p < = 0C hương 2 : Các giải thuật sinh thực thể cơ sở24Hình 2.7 Mô tả giải thuật MidpointSo sánh hay kiểm tra M sẽ được thay bằng việc xét giá trị d. d > 0 điểm B được chọn khi đó y + 1 = y d < 0 điểm A được chọn khi đó yi + 1 = y + 1T rường hợp d = 0 tất cả chúng ta hoàn toàn có thể chọn điểm bất kể hoặc A, hoặc B.Sử dụng chiêu thức màn biểu diễn không tường minhf ( x, y ) = ax + by + c = 0 ( 1 ) dx = x-xdy = y-yBiểu diễn tường minh : y = ( dy / dx ) x + B hay f ( x, y ) = 0 = xdy - ydx + Bdx ( 2 ) So sánh ( 1 ) và ( 2 ) ta có a = dy, b = - dx và c = BdxCó f ( x, y ) = 0 với mọi ( x, y ) thuộc đường thẳngĐặt d = f ( x + 1, y + 50% ) = a ( x + 1 ) + b ( y + 50% ) + c Nếu chọn A ( d < 0 ) thì M sẽ tăng theo 2 hướng x, yi + 1 = f ( x + 2, y + 3/2 ) = a ( x + 2 ) + b ( y + 3/2 ) + ci + 1 – d = a + b Hay di + 1 = d + dy - dx Nếu chọn B ( d > 0 ) thì M sẽ tăng theo xi + 1 = f ( x + 2, y + 50% ) = a ( x + 2 ) + b ( y + 50% ) + ci + 1 – d = a Hay di + 1 = d + dyTính d ? d = f ( x + 1, y + 50% ) = a ( x + 1 ) + b ( y + 50% ) + c = ax + by + c + a + 50% b = f ( x, y ) + a + b / 2C ó ( x, y ) là điểm khởi đầu, nằm trên đoạn thẳng nên f ( x, y ) = 0V ậy d = a + b / 2 = dy – dx / 2 d < 0 d > 0C hương 2 : Các giải thuật sinh thực thể cơ sở25Hình 2.8 Sơ đồ khối giải thuật Midpiontcho đoạn thẳng / * Thuat toan Midpoint de vedoan thang ( 0