Với các ảnh phát sinh từ đồ họa máy tính, hình dạng và màu sắc của mỗi đối tượng có thể được mô tả riêng biệt bằng 2 mô hình:
+ Dãy các pixel (mô hình dựa trên mẫu số hóa), đối tượng được xây dựng từ tập các pixel.
+ Tập các đối tượng hình học cơ sở ( mô hình dựa trên đặc trưng hình học).
Mỗi đối tượng đồ họa cơ sở được mô tả thông qua dữ liệu về tọa độ và các thuộc tính của nó.
38 trang |
Chia sẻ: lylyngoc | Lượt xem: 1901 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Bài giảng môn đồ họa máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆPKHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG MÔN ĐỒ HỌA MÁY TÍNH Số ĐVHT: 2 * Néi dung m«n häc * CH¬NG 2: C¸c phÐp biÕn ®æi c¬ së I. Giới thiệu 1.1 Giới thiệu 1.2 Các hệ tọa độ II. Các thuật toán vẽ đường thẳng, đường tròn III. Các phép biến đổi của đối tượng hai chiều IV. Kết hợp các phép biến đổi V. Một số tính chất của phép biến đổi affine VI. Một số phép biến đổi khác CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ Bất kỳ ảnh nào cũng được cấu trúc từ tập các đối tượng đơn giản hơn. Giíi thiÖu CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ Với các ảnh phát sinh từ đồ họa máy tính, hình dạng và màu sắc của mỗi đối tượng có thể được mô tả riêng biệt bằng 2 mô hình: Giíi thiÖu + Tập các đối tượng hình học cơ sở ( mô hình dựa trên đặc trưng hình học). Mỗi đối tượng đồ họa cơ sở được mô tả thông qua dữ liệu về tọa độ và các thuộc tính của nó. + Dãy các pixel (mô hình dựa trên mẫu số hóa), đối tượng được xây dựng từ tập các pixel. I. GIỚI THIỆU - Đối tượng đồ họa cơ sở đơn giản nhất là điểm và đoạn thẳng, đường tròn, các đường conics, mặt bậc hai, các vùng tô đa giác, chuỗi kí tự, … CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ Giíi thiÖu - Các công cụ lập trình đồ họa cung cấp: Các hàm mô tả một ảnh dưới dạng các đối tượng đồ họa cơ sở Các hàm kết hợp tập các đối tượng cơ sở để tạo thành đối tượng có cấu trúc phức tạp hơn. Chương này sẽ khảo sát các thuật toán hiển thị các đối tượng đồ họa cơ sở cho các thiết bị hiển thị dạng điểm. I. GIỚI THIỆU Các thuật toán thực hiện quá trình chuyển đổi các đối tượng đồ họa cơ sở được mô tả trong hệ tọa độ thực về dãy các pixel có tọa độ nguyên của thiết bị hiển thị. CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ Giíi thiÖu I. GIỚI THIỆU Có hai yêu cầu đặt ra cho các thuật toán là : CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ Giíi thiÖu 1, Điểm nguyên xấp xỉ đối tượng tốt nhất: Do: Đối tượng được mô tả trong hệ tọa độ thực là liên tục, còn đối tượng trong hệ tọa độ thiết bị là rời rạc Nên: Đối tượng được hiển thị trên hệ tọa độ thiết bị phải “giống nhất“ với đối tượng trong hệ tọa độ thế giới thực. 2, Tối ưu hóa về mặt tốc độ: Do: Các đối tượng đồ họa cơ sở là thành phần chính cấu trúc nên các đối tượng phức tạp, Nên: Các thuật toán hiển thị chúng cần phải được tối ưu hóa về mặt tốc độ. I. GIỚI THIỆU - Hệ tọa độ thế giới thực: Hệ tọa độ thế giới thực mô tả các đối tượng thế giới thực. Thường dùng hệ tọa độ Descartes. CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ C¸c HÖ täa ®é Các điểm trong hệ được mô tả bởi một cặp tọa độ (x, y), trong đó x, y R. Do vậy, các điểm trong hệ tọa độ thực được định nghĩa liên tục. I. GIỚI THIỆU - Hệ tọa độ thiết bị: Hệ tọa độ thiết bị mô tả các đối tượng trong một thiết bị xuất cụ thể nào đó: máy in, màn hình, ... Đặc điểm của hệ tọa độ thiết bị: + Mỗi điểm được mô tả bởi một cặp tọa độ (x, y), trong đó x, y N. I. GIỚI THIỆU CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ C¸c HÖ täa ®é + x, y bị giới hạn trong một khoảng nào đó và tùy theo từng loại thiết bị. Do vậy các điểm rời rạc nhau . I. GIỚI THIỆU Hệ tọa độ thiết bị chuẩn: Hệ tọa độ trên các thiết bị khác nhau là khác nhau nên một hình ảnh hiển thị trên thiết bị này là chính xác nhưng có thể là không chính xác khi hiển thị trên thiết bị khác. I. GIỚI THIỆU CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ C¸c HÖ täa ®é Hệ tọa độ thiết bị chuẩn đại diện chung cho tất cả các thiết bị để mô tả các hình ảnh mà không phụ thuộc vào thiết bị hiển thị nào * CH¬NG 2: C¸c phÐp biÕn ®æi c¬ së I. Giới thiệu II. Các thuật toán vẽ đường thẳng, đường tròn 2.1 Các đối tượng đồ họa cơ sở 2.2 Các thuật toán vẽ đường thẳng 2.3 Thuật toán Midpoint vẽ đường tròn III. Các phép biến đổi của đối tượng hai chiều IV. Kết hợp các phép biến đổi V. Một số tính chất của phép biến đổi affine VI. Một số phép biến đổi khác II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG + Điểm: Điểm là thành phần cơ sở được định nghĩa trong một hệ tọa độ. I. GIỚI THIỆU I. GIỚI THIỆU CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ C¸c ®èi tîng ®å häa c¬ së Đối với hệ tọa độ hai chiều mỗi điểm được xác định bởi cặp tọa độ (x, y). Ngoài thông tin về tọa độ, điểm còn có thuộc tính là màu sắc. Thủ tục vẽ một điểm (x,y) với mầu c: Putpixel(x,y,c) II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG + Đoạn thẳng: Được xác định bởi: Màu sắc, độ rộng nét vẽ, kiểu nét vẽ của đoạn thẳng ( nét liền, nét đứt, chấm gạch…) Một đường thẳng được xác định nếu biết hai điểm thuộc nó (x1, y1) và (x2, y2): II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG I. GIỚI THIỆU I. GIỚI THIỆU CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ C¸c ®èi tîng ®å häa c¬ së Ta có: y = mx + b, trong đó: II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG + Đường gấp khúc: Tập các đoạn thẳng nối với nhau một cách tuần tự, điểm giao của hai đoạn thẳng được gọi là đỉnh. Các đường gấp khúc được xác định qua danh sách các đỉnh, mỗi đỉnh được cho bởi các cặp tọa độ. II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG I. GIỚI THIỆU I. GIỚI THIỆU CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ C¸c ®èi tîng ®å häa c¬ së + Đa giác: Là một đường gấp khúc có điểm đầu và điểm cuối trùng nhau. II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG + Vùng tô: Gồm đường biên (là một đường khép kín) và vùng bên trong. Xác định bởi: Thuộc tính của đường biên: là các thuộc tính như thuộc tính của đoạn thẳng. Thuộc tính của vùng bên trong: bao gồm màu tô và mẫu tô. II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG I. GIỚI THIỆU I. GIỚI THIỆU CHƯƠNG II: CÁC PHÉP BIẾN ĐỔI CƠ SỞ C¸c ®èi tîng ®å häa c¬ së + Kí tự, chuỗi kí tự: xác định bởi: Màu sắc của các kí tự, Font chữ, kích thước, khoảng cách giữa các kí tự, sự canh chỉnh (gióng lề), hướng hiển thị tuần tự của các kí tự. * II C¸c tt vÏ ®êng th¼ng, ®êng trßn 2.1 Các đối tượng đồ họa cơ sở 2.2 Các thuật toán vẽ đường thẳng 2.2.1 Mở đầu 2.2.2 Thuật toán DDA 2.2.3 Thuật toán Bresenham 2.2.4 Thuật toán Midpoint 2.3 Thuật toán Midpoint vẽ đường tròn II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG Gọi (xi,yi), i= 0,1,… là tọa độ các điểm nguyên sau khi xấp xỉ các điểm thực, và là các điểm sẽ được hiển thị trên màn hình. Nếu bước i xác định được (xi,yi ) më ®Çu (xi,yi) là điểm đen trên hình vẽ Thì bước thứ i+1 xác định được (xi+1,yi+1) (xi+1,yi+1) là một trong tám điểm được đánh số từ 1 đến 8. II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG Xét đoạn thẳng có hệ số góc 0≤ m ≤1 và Dx >0 . II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG më ®Çu II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG Xét đoạn thẳng có hệ số góc 0 ≤ m ≤ 1 và Dx >0 . Như vậy : xi+1 = xi +1, yi+1 { yi, yi + 1 } II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG më ®Çu Nếu (xi,yi) là điểm đã xác định được ở bước thứ i Thì điểm cần chọn (xi+1,yi+1) ở bước thứ (i+1) sẽ là một trong hai trường hợp như hình vẽ. Ý tưởng: Dựa vào phương trình y = mx + b để chọn yi+1 là yi hay yi+1. Thuật toán DDA (Digital Differential Analyzer) Từ pt của đoạn thẳng ta có: yti+1= mxi+1 + b Tính tọa độ điểm Q(xi+1,yti+1) thuộc đoạn thẳng thực: yi+1 là giá trị sau khi làm tròn yti+1 : yi+1 = round(yti+1) Do vậy: yi+1= round(yi + m) Thuật toán DDA Như vậy: Nếu bước thứ i ta vẽ được điểm (xi,yi) xi+1 = xi +1, Thì bước thứ i+1 ta vẽ được điểm (xi+1,yi+1) yi+1= round(yi + m) Thuật toán DDA (Digital Differential Analyzer) Trong đó: Giải thuật: Thuật toán DDA End Begin m = Dy/Dx; x = x1; y = y1; Putpixel(x, y, c); x ≤ x2 x = x + 1; y = y + m; Putpixel(x,round(y),c); Đúng Sai - Việc sử dụng công thức yti+1 = yi + m đã khử được phép nhân trên số thực. II. CÁC THUẬT TOÁN VẼ ĐIỂM, ĐƯỜNG Thuật toán DDA (Digital Differential Analyzer) - Còn bị hạn chế về mặt tốc độ do vẫn còn phép toán cộng số thực và làm tròn. Nhận xét: Ý tưởng: Thuật toán đưa ra cách chọn yi+1 là yi hay yi+1 theo hướng hạn chế tối đa các phép toán trên số thực. b, Thuật toán Bresenham Thuật toán Bresenham Gọi Q(xi+1,y) ϵ đường thẳng thực, ta có: Đặt: d1 = y – yi , d2 = (yi + 1) – y = m(xi+1) + b . y = mxi+1 + b . b, Thuật toán Bresenham Xét pi = Dx (d1 – d2 ) Thuật toán Bresenham = Dx ( 2y - 2yi – 1) → pi = Dx ( 2 ( m ( xi + 1) + b) - 2yi – 1) do m = Dy/Dx → Pi = 2xiDy – 2yiDx + c với c = 2Dy + (2b - 1)Dx Ta tính: b, Thuật toán Bresenham Thuật toán Bresenham Nếu d1 – d2 1 2. Tìm các điểm phát sinh khi vẽ đường thẳng bằng thuật toán DDA trong trường hợp 01 3. Tìm các điểm phát sinh khi vẽ đường thẳng bằng thuật toán Bresenham và Midpoint trong trường hợp 01 4. Tìm các điểm phát sinh khi vẽ đường tròn bằng thuật toán Midpoint