1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình đồ họa máy tính

119 234 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Xin giới thiệu với mọi người tập tài liệu Giáo Trình Đồ Họa Máy Tính Lưu Hành trong Nội Bộ Trường Đại Học DL . Nó sẽ giúp ích cho bạn trong việc học đồ họa máy tính cũng như làm quen với lập trình đồ họa .

LỜI MỞ ĐẦU Theo khung chương trình đào tạo hệ cử nhân kỹ sư Bộ Giáo Dục Đào Tạo, Đồ họa máy tính học phần quan trọng ngành Công nghệ Thông tin Qua nhiều năm nghiên cứu giảng dạy mơn Đồ họa máy tính trường Đại học Khoa học Huế, Đại học Điện lực Hà Nội, Đại học Sư phạm Huế số trường Đại học khác, cố gắng đúc kết để biên soạn giáo trình Đồ họa máy tính nhằm đáp ứng nhu cầu học tập nghiên cứu sinh viên chun ngành Cơng nghệ Thơng tin, giúp sinh viên có tài liệu tham khảo tốt bước đầu làm quen với kiến thức kỹ lập trình đồ họa Đây mơn học khó liên quan đến nhiều kiến thức tốn học, để học tốt mơn đòi hỏi sinh viên phải có tư tốn học kỹ lập trình tốt Nội dung giáo trình chia thành chương Các vấn đề chương trình bày ngắn gọn từ sở lý thuyết đến xây dựng thuật toán cuối mã nguồn cài đặt minh hoạ ngôn ngữ C Để thuận tiện cho việc thực hành sinh viên, tất mã nguồn giáo trình tương thích với trình biên dịch Turbo C++ 3.0 Chúng chân thành cảm ơn đồng nghiệp Khoa Công nghệ Thông tin trường Đại học Khoa học Huế, Đại học Điện lực Hà Nội giúp đỡ, đóng góp nhiều ý kiến q báu để hồn thiện nội dung giáo trình Chúng hy vọng sớm nhận ý kiến đóng góp, phê bình bạn đọc nội dung, chất lượng hình thức trình bày để giáo trình ngày hồn thiện Hà Nội, ngày tháng 09 năm 2010 Nhóm tác giả Giáo trình Đồ họa máy tính MỤC LỤC CHƯƠNG MỞ ĐẦU: TỔNG QUAN VỀ ĐỒ HỌA MÁY TÍNH GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH CÁC KỸ THUẬT ĐỒ HỌA 2.1 Kỹ thuật đồ họa điểm 2.2 Kỹ thuật đồ họa vector CÁC ỨNG DỤNG CỦA ĐỒ HỌA CÁC LĨNH VỰC NGHIÊN CỨU ĐỒ HỌA TỔNG QUAN VỀ MỘT HỆ ĐỒ HỌA 5.1 Hệ thống đồ họa 5.2 Các thành phần hệ thống đồ họa CHƯƠNG 1: CÁC YẾU TỐ CƠ SỞ CỦA ĐỒ HỌA 1.1 MÀN HÌNH ĐỒ HỌA 1.2 BIỂU DIỄN TOẠ ĐỘ 1.3 VẼ ĐIỂM 1.4 CÁC THUẬT TOÁN VẼ ĐOẠN THẲNG 10 1.4.1 Thuật toán DDA (Digital differential analyzer) 11 1.4.2 Thuật toán Bresenham 12 1.4.3 Thuật toán MidPoint 14 1.5 THUẬT TỐN VẼ ĐƯỜNG TRỊN 16 1.5.1 Thuật toán Bresenham 17 1.5.2 Thuật toán MidPoint 18 1.6 THUẬT TOÁN VẼ ELLIPSE 20 1.6.1 Thuật toán Bresenham 20 1.6.2 Thuật toán MidPoint 22 1.7 PHƯƠNG PHÁP VẼ ĐỒ THỊ HÀM SỐ 24 BÀI TẬP 26 CHƯƠNG 2: TÔ MÀU 28 2.1 GIỚI THIỆU CÁC HỆ MÀU 28 2.1.1.Hệ RGB (Red, Green, Blue) 28 2.1.2 Hệ CMY (Cyan, Magenta, Yellow) 29 Giáo trình Đồ họa máy tính 2.1.3 Hệ YIQ 29 2.1.4 Hệ HSV (Hue, Saturation, Value) 29 2.1.5 Hệ HSL (Hue, Saturation, Lightness) 30 2.2 CÁC THUẬT TỐN TƠ MÀU 30 2.2.1 Bài toán 30 2.2.2 Thuật toán xác định P ∈ S? 30 2.2.3 Thuật toán Scanline 34 2.2.4 Thuật toán tô loang 38 BÀI TẬP 43 CHƯƠNG : XÉN HÌNH 45 3.1 BÀI TOÁN TỔNG QUÁT 45 3.2 XÉN ĐOẠN THẲNG VÀO HÌNH CHỮ NHẬT 45 3.2.1 Thuật toán Cohen - Sutherland 46 3.2.2 Thuật toán chia nhị phân 50 3.2.3 Thuật toán Liang - Barsky 53 3.2.4 Khi cạnh hình chữ nhật tạo với trục hồnh góc α∈(0,π/2) 57 3.5 XÉN ĐA GIÁC VÀO HÌNH CHỮ NHẬT 57 BÀI TẬP 64 CHƯƠNG 4: THIẾT KẾ ĐƯỜNG CONG BEZIER VÀ B-SPLINE 65 4.1 ĐƯỜNG CONG BEZIER VÀ MẶT BEZIER 65 4.1.1 Thuật toán Casteljau 65 4.1.2 Dạng Bernstein đường cong Bezier 66 4.1.3 Tạo vẽ đường Bezier 67 4.1.4 Các tính chất đường cong Bezier 69 4.1.5 Đánh giá đường cong Bezier 71 4.2 ĐƯỜNG CONG SPLINE VÀ B-SPLINE 72 4.2.1 Định nghĩa 72 4.2.2 Các tính chất hữu ích việc thiết kế đường cong B-Spline 75 4.2.3 Thiết kế mặt Bezier B-Spline 76 CHƯƠNG 5: CÁC PHÉP BIẾN ĐỔI TRONG MẶT PHẲNG 78 5.1 CƠ SỞ TOÁN HỌC 78 5.2 CÁC PHÉP BIẾN ĐỔI CƠ BẢN 78 Giáo trình Đồ họa máy tính 5.2.1 Phép tịnh tiến 78 5.2.2 Phép đồng dạng 78 5.2.3 Phép đối xứng 79 5.2.4 Phép quay 79 5.2.5 Phép biến dạng 79 5.2.6 Hợp phép biến đổi 79 5.3 CÁC VÍ DỤ MINH HỌA 81 BÀI TẬP 85 CHƯƠNG 6: VẼ CÁC ĐỐI TƯỢNG BA CHIỀU 86 6.1 CÁC PHÉP BIẾN ĐỔI TRONG KHÔNG GIAN 86 6.1.1 Các hệ trục tọa độ 86 6.1.2 Các phép biến đổi 87 6.1.3 Ma trận nghịch đảo 88 6.2 PHÉP CHIẾU VẬT THỂ TRONG KHÔNG GIAN LÊN MẶT PHẲNG 88 6.2.1 Phép chiếu phối cảnh 88 6.2.2 Phép chiếu song song 89 6.3 CƠNG THỨC CỦA CÁC PHÉP CHIẾU LÊN MÀN HÌNH 90 6.4 PHỤ LỤC 95 6.5 MƠ HÌNH WIREFRAME 100 6.5.1 Xây dựng cấu trúc liệu 101 6.5.2 Vẽ mơ hình WireFrame 102 6.6 VẼ CÁC MẶT TOÁN HỌC 103 BÀI TẬP 107 CHƯƠNG 7: KHỬ ĐƯỜNG VÀ MẶT KHUẤT 108 7.1 MƠ HÌNH CÁC MẶT ĐA GIÁC 108 7.2 CÁC PHƯƠNG PHÁP KHỬ MẶT KHUẤT 109 7.2.1 Giải thuật Depth-sorting 109 7.2.2 Giải thuật BackFace 111 7.2.3 Giải thuật vùng đệm độ sâu (Z-Buffer) 116 BÀI TẬP 118 TÀI LIỆU THAM KHẢO 119 Giáo trình Đồ họa máy tính CHƯƠNG MỞ ĐẦU: TỔNG QUAN VỀ ĐỒ HỌA MÁY TÍNH GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH Đồ họa máy tính ngành khoa học Tin học chuyên nghiên cứu phương pháp kỹ thuật để mơ tả thao tác đối tượng giới thực máy tính Về chất: q trình xây dựng phát triển cơng cụ hai lĩnh vực phần cứng phần mềm hổ trợ cho lập trình viên thiết kế chương trình có khả đồ họa cao Với việc mơ tả liệu thơng qua hình ảnh màu sắc đa dạng nó, chương trình đồ họa thường thu hút người sử dụng tính thân thiện, dể dùng, kích thích khả sáng tạo nâng cao suất làm việc Thuật ngữ đồ họa máy tính (Computer Graphics) đề xuất nhà khoa học người Mỹ tên William Fetter vào năm 1960 ơng nghiên cứu xây dựng mơ hình buồng lái máy bay cho hãng Boeing Các chương trình đồ họa ứng dụng cho phép làm việc với máy tính cách thoải mái, tự nhiên CÁC KỸ THUẬT ĐỒ HỌA Dựa vào phương pháp xử lý liệu hệ thống, phân thành hai kỹ thuật đồ họa: 2.1 Kỹ thuật đồ họa điểm Nguyên lý kỹ thuật sau: hình ảnh hiển thị thơng qua pixel (từng mẫu rời rạc) Với kỹ thuật này, tạo ra, xóa thay đổi thuộc tính pixel đối tượng Các hình ảnh hiển thị lưới điểm rời rạc (grid), điểm có vị trí xác định hiển thị với giá trị nguyên biểu thị màu sắc dộ sáng điểm Tập hợp tất pixel grid tạo nên hình ảnh đối tượng mà ta muốn biểu diễn 2.2 Kỹ thuật đồ họa vector Nguyên lý kỹ thuật xây dựng mơ hình hình học (geometrical model) cho hình ảnh đối tượng, xác định thuộc tính mơ hình hình học, sau dựa mơ hình để thực q trình tơ trát (rendering) để hiển thị điểm mơ hình, hình ảnh đối tượng Kỹ thuật lưu trữ mơ hình tốn học thành phần mơ hình hình học với thuộc tính tương ứng mà khơng cần lưu lại tồn tất pixel hình ảnh đối tượng CÁC ỨNG DỤNG CỦA ĐỒ HỌA Ngày nay, đồ họa máy tính sử dụng rộng rãi nhiều lĩnh vực khác như: Công nghiệp, thương mại, quản lý, giáo dục, giải trí, Sau số ứng dụng tiêu biểu: 3.1 Tạo giao diện (User Interfaces): chương trình ứng dụng WINDOWS, WINWORD, EXCEL đa số người sử dụng ưa chuộng nhờ tính thân thiện, dể sử dụng 3.2 Tạo biểu đồ dùng thương mại, khoa học kỹ thuật: Các biểu đồ tạo đa dạng, phong phú bao gồm hai chiều lẫn ba chiều góp phần thúc đẩy xu hướng Giáo trình Đồ họa máy tính phát triển mơ hình liệu hổ trợ đắc lực cho việc phân tích thông tin trợ giúp định 3.3 Tự động hóa văn phòng chế điện tử: dùng ứng dụng đồ họa để in ấn tài liệu với nhiều loại liệu khác như: văn bản, biểu đồ, đồ thị nhiều loại hình ảnh khác 3.4 Thiết kế với trợ giúp máy tính (Computer aided design): Một lợi ích lớn máy tính trợ giúp người việc thiết kế Các ứng dụng đồ họa cho phép thiết kế thiết bị khí, điện, điện tử, tơ, máy bay, phần mềm AUTOCAD 3.5 Lĩnh vực giải trí, nghệ thuật: Các phần mềm PAINTBRUSH, CORELDRAW, PHOTOSHOP cho phép tạo hình ảnh trực quan hình máy tính, người họa sĩ tự pha màu, trộn màu, thực số thao tác: cắt, dán, tẩy, xóa, phóng to, thu nhỏ Ngồi có hàng triệu game online offline phục vụ việc giải trí 3.6 Lĩnh vực đồ: xây dựng in ấn đồ địa lý Một ứng dụng đồ họa hệ thống thông tin địa lý (GIS - Geographical Information System) CÁC LĨNH VỰC NGHIÊN CỨU ĐỒ HỌA 4.1 Các hệ CAD/CAM (CAD – Computer Aided Design, CAM – Computer Aided Manufacture) Các hệ xây dựng tập hợp công cụ đồ họa trợ giúp cho việc thiết kế chi tiết hệ thống khác nhau: thiết bị khí, điện tử Chẳng hạn phần mềm Auto Cad hảng AutoDesk 4.2 Xử lý ảnh (Image Processing) Đây lĩnh vực xử lý liệu ảnh sống Sau trình xử lý ảnh, liệu đầu ảnh đối tượng Trong trình xử lý ảnh, sử dụng nhiều kỹ thuật phức tạp: khôi phục ảnh, xác định biên Ví dụ: phần mềm PhotoShop, Corel Draw, 4.3 Khoa học nhận dạng (Pattern Recognition) Nhận dạng lĩnh vực kỹ thuật xử lý ảnh Từ mẫu ảnh có sẵn, ta phân loại theo cấu trúc theo phương pháp xác định thuật tốn chọn lọc để phân tích hay tổng hợp ảnh cho thành tập hợp ảnh gốc, ảnh gốc lưu thư viện vào thư viện để nhận dạng ảnh khác Ví dụ: Phần mềm nhận dạng chữ viết (VnDOCR) viện Công nghệ Thông tin Hà Nội, nhận dạng vân tay, nhận dạng mặt người khoa học hình 4.4 Đồ họa minh họa (Presentation Graphics) Đây lĩnh vực đồ họa bao gồm công cụ trợ giúp cho việc hiển thị số liệu thống kê cách trực quan thông qua mẫu đồ thị biểu đồ có sẵn Chẳng hạn biểu đồ (Chart) phần mềm Word, Excel 4.5 Hoạt hình nghệ thuật Giáo trình Đồ họa máy tính Lĩnh vực đồ họa bao gồm công cụ giúp cho họa sĩ, nhà thiết kế phim ảnh chun nghiệp thực cơng việc thơng qua kỹ xảo vẽ tranh, hoạt hình kỹ xảo điện ảnh khác Ví dụ: Phần mềm xử lý kỹ xảo hoạt 3D Animation, 3D Studio Max , phần mềm xử lý kỹ xảo điện ảnh: Adobe Primiere, Cool 3D, TỔNG QUAN VỀ MỘT HỆ ĐỒ HỌA 5.1 Hệ thống đồ họa Phần mềm đồ họa: Là tập hợp câu lệnh đồ họa hệ thống Các câu lệnh lập trình dùng cho thao tác đồ họa khơng ngơn ngữ lập trình thơng dụng PASCAL, C, hổ trợ Thơng thường, cung cấp tập công cụ thêm vào ngôn ngữ Tập công cụ dùng để tạo thành phần sở hình ảnh đồ họa như: Điểm, đoạn thẳng, đường tròn, màu sắc, Qua đó, nhà lập trình phải tạo chương trình đồ họa có khả ứng dụng cao Phần cứng đồ họa: Là thiết bị điện tử: CPU, Card, hình, chuột, phím giúp cho việc thực phát triển phần mềm đồ họa 5.2 Các thành phần hệ thống đồ họa Tập hợp công cụ phân loại dựa cơng việc hồn cảnh cụ thể: xuất, nhập, biến đổi ảnh, bao gồm: • Tập công cụ tạo ảnh gốc (output primitives): cung cấp công cụ cho việc xây dựng hình ảnh Các ảnh gốc bao gồm chuỗi ký tự, thực thể hình học điểm, đường thẳng, đa giác, đường tròn, • Tập cơng cụ thay đổi thuộc tính (attributes): dùng để thay đổi thuộc tính ảnh gốc Các thuộc tính ảnh gốc bao gồm màu sắc (color), kiểu đường thẳng (line style), kiểu văn (text style), mẫu tô vùng (area filling pattern), • Tập cơng cụ thay đổi hệ quan sát (viewing transformation): Một mà ảnh gốc thuộc tính xác định hệ tọa độ thực, ta cần phải chiếu phần quan sát ảnh sang thiết bị xuất cụ thể Các công cụ cho phép định nghĩa vùng quan sát hệ tọa độ thực để hiển thị hình ảnh • Tập cơng cụ phục vụ cho thao tác nhập liệu (input operations): Các ứng dụng đồ họa sử dụng nhiều loại thiết bị nhập khác bút vẽ, bảng, chuột, Chính vậy, cần xây dựng thêm công cụ để điều khiển xử lý liệu nhập cho có hiệu Một yêu cầu phần cứng thiếu đặt cho phần mềm đồ họa là: tính dễ mang chuyển (portability), có nghĩa chương trình chuyển đổi cách dễ dàng kiểu phần cứng khác Nếu khơng có chuẩn hóa, chương trình thiết kế thường khơng thể chuyển đổi đến hệ thống phần cứng khác mà không viết lại gần tồn chương trình Sau nổ lực tổ chức chuẩn hóa quốc tế, chuẩn cho việc phát triển phần mềm đồ họa đời: GKS (Graphics Kernel System - Hệ đồ họa sở) Hệ thống ban đầu thiết kế tập công cụ đồ họa hai chiều, sau phát triển để mở rộng đồ họa ba chiều Giáo trình Đồ họa máy tính Ngồi ra, có số chuẩn đồ họa phổ biến như: • CGI (Computer Graphics Interface System): hệ chuẩn cho phương pháp giao tiếp với thiết bị ngoại vi • OPENGL: thư viện đồ họa hảng Silicon Graphics • DIRECTX: thư viện đồ họa hảng Microsoft Giáo trình Đồ họa máy tính CHƯƠNG 1: CÁC YẾU TỐ CƠ SỞ CỦA ĐỒ HỌA 1.1 MÀN HÌNH ĐỒ HỌA Mỗi máy tính có CARD dùng để quản lý hình, gọi Video Adapter hay Graphics Adapter Có nhiều loại adapter như: CGA, MCGA, EGA, VGA, Hercules Các adapter làm việc hai chế độ: văn (Text Mode) đồ họa (Graphics Mode) Có nhiều cách để khởi tạo mode đồ họa Ta sử dụng hàm $00 ngắt $10 BIOS với Mode sau: • Mode 12h: chế độ phân giải 640x480x16 • Mode 13h: chế độ phân giải 320x200x256 Chúng ta viết hàm để khởi tạo mode đồ họa sau: void InitGraph(int Mode) { union REGS intregs, outregs; intregs.h.ah = 0; intregs.h.al = (unsigned char)Mode; _int86(0x10,&intregs,&outregs); } Chú ý: Các bạn tham khảo thêm cách sử dụng véc tơ ngắt ROM BIOS tài liệu lập trình hệ thống 1.2 BIỂU DIỄN TOẠ ĐỘ O MaxX Y Y O X X MaxY Tọa độ giới thực Tọa độ thiết bị hình Hình 1.1 Biểu diễn tọa độ Hầu hết chương trình đồ họa dùng hệ tọa độ Decartes (Hình 1.1) Tuy nhiên tùy theo ứng dụng cụ thể, sử dụng hệ tọa độ cầu để thuận lợi cho việc tính tốn sau chuyển qua hệ toạ độ Decartes để vẽ lên hình 1.3 VẼ ĐIỂM Trong hệ thống đồ họa, điểm (pixel) biểu thị tọa độ số Giáo trình Đồ họa máy tính Ví dụ: Trong mặt phẳng, điểm cặp (x,y) Trong không gian ba chiều, điểm ba (x,y,z) Trên hình máy tính, điểm vị trí vùng nhớ hình dùng để lưu trữ thông tin độ sáng điểm tương ứng hình Số điểm vẽ hình gọi độ phân giải hình (320x200, 480x640, 1024x1024, ) Cách hiển thị thông tin lên hình đồ họa: Vùng đệm hình hay gọi nhớ hiển thị địa A000h:$0000h Vì vậy, để hiển thị thơng tin hình ta cần đưa thơng tin vào vùng đệm hình địa Có nhiều cách để vẽ điểm hình: dùng phục vụ BIOS truy xuất trực tiếp vào vùng nhớ hình • Nếu dùng phục vụ BIOS, dùng hàm 0Ch ngắt 10h • Nếu muốn truy xuất trực tiếp vào vùng đệm hình: Giả sử điểm (x,y) vẽ hình với độ phân giải 320x200x256 (mode 13h), điểm định vị vùng đệm hình địa segment A000h địa offset tính theo công thức: Offset = y*320 + x = (y

Ngày đăng: 25/12/2018, 22:29

Xem thêm:

TỪ KHÓA LIÊN QUAN

w