Giáo Trình Kỹ Thuật Đồ Họa Máy Tính: Hướng Dẫn Chi Tiết Cho Sinh Viên

Giáo trình nghiên cứu kỹ thuật đồ họa máy tính, trình bày lý thuyết rõ ràng, minh họa ví dụ thực tế, phù hợp sinh viên kỹ thuật., phục vụ nghiên cứu và ứng dụng thực tiễn

Chuyên ngành

Kỹ Thuật Đồ Họa

Người đăng

Ẩn danh

Thể loại

Giáo Trình

2013

160
8
0

Phí lưu trữ

45 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

1. CHƯƠNG 1: GIỚI THIỆU THUẬT TOÁN VẼ VÀ TÔ CÁC ĐƯỜNG CƠ BẢN

1.1. Tổng quan

1.2. Hệ tọa độ thế giới thực, hệ tọa độ thiết bị và hệ tọa độ chuẩn

1.3. Thuật toán vẽ đoạn thẳng

1.3.1. Thuật toán DDA (Digital Differential Analyzer)

1.3.2. Thuật toán Bresenham

1.4. Thuật toán vẽ đường tròn

1.4.1. Thuật toán đơn giản

1.4.2. Thuật toán MidPoint

1.4.3. Vẽ đường tròn bằng thuật toán Bresenham

1.5. Thuật toán vẽ Ellipse

1.6. Vẽ đường conics và một số đường cong khác

1.7. Tổng kết chương 1

1.8. Bài tập chương 1

2. CHƯƠNG 2: CÁC THUẬT TOÁN TÔ MÀU

2.1. Các không gian màu

2.1.1. Không gian màu RGB (Red - Green - Blue)

2.1.2. Không gian màu CMY (Cyan - Magenta - Yellow)

2.1.3. Không gian màu HSV (Hue - Saturation - Value)

2.2. Các thuật toán tô màu

2.2.1. Tô màu theo dòng quét (scan-line)

2.2.2. Phương pháp tô màu dựa theo đường biên

2.3. Tổng kết chương 2

2.4. Bài tập chương 2

3. CHƯƠNG 3: PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA HAI CHIỀU

3.1. Phép tịnh tiến (translation)

3.2. Phép biến đổi tỷ lệ

3.3. Phép đối xứng

3.4. Phép biến dạng

3.5. Phép biến đổi Affine ngược (The inverse of an Affine transformation)

3.6. Một số tính chất của phép biến đổi affine

3.7. Hệ tọa độ thuần nhất

3.8. Kết hợp các phép biến đổi (composing transformation)

3.9. Tổng kết chương 3

3.10. Bài tập chương 3

4. CHƯƠNG 4: WINDOWING VÀ CLIPPING

4.1. Các khái niệm về Windowing

4.2. Các thuật toán Clipping

4.3. Phép biến đổi từ cửa sổ đến vùng quan sát

4.4. Tổng kết chương 4

4.5. Bài tập chương 4

5. CHƯƠNG 5: ĐỒ HỌA BA CHIỀU

5.1. Giới thiệu đồ họa 3 chiều

5.2. Biểu diễn đối tượng 3 chiều

5.3. Các phép biến đổi 3 chiều

5.4. Hệ tọa độ bàn tay phải - bàn tay trái

5.5. Các phép biến đổi Affine cơ sở

5.6. Tổng kết chương 5

6. CHƯƠNG 6: QUAN SÁT ẢNH BA CHIỀU

6.1. Các phép chiếu song song

6.2. Các phép chiếu phối cảnh

6.3. Biến đổi hệ tọa độ quan sát (hệ quan sát)

6.4. Xác định mặt phẳng quan sát

6.5. Không gian quan sát

6.6. Cài đặt các thao tác quan sát (Implementation of Viewing Operations)

6.7. Cài đặt phần cứng

6.8. Lập trình xem ảnh ba chiều

6.9. Các mở rộng đến Đường ống quan sát (Viewing Pipeline)

6.10. Tổng kết chương 6

6.11. Bài tập chương 6

7. CHƯƠNG 7: KHỬ CÁC MẶT KHUẤT VÀ ĐƯỜNG KHUẤT

7.1. Khử các mặt nằm sau (Back-Face Removal)

7.2. Phương pháp dùng vùng đệm độ sâu (Depth-Buffer Method)

7.3. Phương pháp đường quét (Scan-Line Method)

7.4. Phương pháp sắp xếp theo độ sâu (Depth-Sorting Method)

7.5. Phương pháp phân chia vùng (Area-Subdivision Method)

7.6. Các phương pháp Octree (Octree Methods)

7.7. Loại bỏ các đường bị che khuất

7.8. Tổng kết chương 7

7.9. Bài tập chương 7

Tóm tắt

I. Tổng quan về Giáo Trình Kỹ Thuật Đồ Họa Máy Tính Dành Cho Sinh Viên

Giáo trình Kỹ thuật đồ họa máy tính là tài liệu quan trọng cho sinh viên chuyên ngành công nghệ thông tin. Nội dung giáo trình cung cấp kiến thức cơ bản về đồ họa máy tính, từ các thuật toán vẽ đến các phép biến đổi trong không gian 2D và 3D. Mục tiêu chính là giúp sinh viên nắm vững các khái niệm và kỹ thuật cần thiết để phát triển ứng dụng đồ họa.

1.1. Định nghĩa và vai trò của Kỹ thuật đồ họa

Kỹ thuật đồ họa là lĩnh vực nghiên cứu và ứng dụng các phương pháp để tạo ra hình ảnh trên máy tính. Nó đóng vai trò quan trọng trong nhiều lĩnh vực như thiết kế, game, và mô phỏng.

1.2. Lịch sử phát triển của đồ họa máy tính

Đồ họa máy tính đã phát triển từ những năm 1960, với sự ra đời của các thuật toán vẽ cơ bản. Ngày nay, nhờ vào sự tiến bộ của công nghệ, đồ họa máy tính đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày.

II. Những Thách Thức Trong Việc Dạy và Học Kỹ Thuật Đồ Họa

Việc dạy và học kỹ thuật đồ họa không hề đơn giản. Chủ đề này có nhiều phức tạp và yêu cầu sinh viên phải có kiến thức nền tảng vững chắc về toán học và lập trình. Các thách thức này cần được giải quyết để nâng cao hiệu quả giảng dạy.

2.1. Khó khăn trong việc tiếp cận kiến thức

Sinh viên thường gặp khó khăn trong việc hiểu các thuật toán phức tạp và cách áp dụng chúng vào thực tế. Điều này đòi hỏi giáo viên phải có phương pháp giảng dạy hiệu quả.

2.2. Thiếu tài liệu tham khảo chất lượng

Nhiều tài liệu hiện có không cập nhật hoặc không phù hợp với chương trình học. Việc tìm kiếm tài liệu chất lượng là một thách thức lớn cho sinh viên.

III. Phương Pháp Giảng Dạy Kỹ Thuật Đồ Họa Hiệu Quả

Để nâng cao hiệu quả giảng dạy kỹ thuật đồ họa, cần áp dụng các phương pháp giảng dạy hiện đại. Việc kết hợp lý thuyết và thực hành sẽ giúp sinh viên nắm vững kiến thức hơn.

3.1. Sử dụng phần mềm đồ họa trong giảng dạy

Việc sử dụng phần mềm đồ họa như AutoCAD hay Adobe Illustrator trong giảng dạy giúp sinh viên có cái nhìn thực tế hơn về ứng dụng của kỹ thuật đồ họa.

3.2. Tổ chức các buổi thực hành và dự án nhóm

Các buổi thực hành và dự án nhóm giúp sinh viên áp dụng kiến thức vào thực tế, từ đó nâng cao khả năng làm việc nhóm và giải quyết vấn đề.

IV. Ứng Dụng Thực Tiễn Của Kỹ Thuật Đồ Họa

Kỹ thuật đồ họa có nhiều ứng dụng thực tiễn trong các lĩnh vực như game, thiết kế đồ họa, và mô phỏng. Những ứng dụng này không chỉ giúp sinh viên hiểu rõ hơn về môn học mà còn mở ra nhiều cơ hội nghề nghiệp.

4.1. Ứng dụng trong ngành công nghiệp game

Kỹ thuật đồ họa là yếu tố quyết định trong việc phát triển game. Các nhà phát triển cần nắm vững các thuật toán và công nghệ đồ họa để tạo ra những sản phẩm chất lượng.

4.2. Thiết kế đồ họa và truyền thông

Trong lĩnh vực thiết kế đồ họa, kỹ thuật đồ họa giúp tạo ra các sản phẩm truyền thông hấp dẫn, từ quảng cáo đến thiết kế bao bì.

V. Kết Luận và Tương Lai Của Kỹ Thuật Đồ Họa

Kỹ thuật đồ họa đang ngày càng phát triển và có vai trò quan trọng trong nhiều lĩnh vực. Tương lai của kỹ thuật đồ họa hứa hẹn sẽ có nhiều tiến bộ với sự phát triển của công nghệ.

5.1. Xu hướng phát triển công nghệ đồ họa

Công nghệ đồ họa đang tiến bộ nhanh chóng với sự ra đời của các công nghệ mới như thực tế ảo (VR) và thực tế tăng cường (AR).

5.2. Cơ hội nghề nghiệp trong lĩnh vực đồ họa

Với sự phát triển của ngành công nghiệp đồ họa, cơ hội nghề nghiệp cho sinh viên trong lĩnh vực này ngày càng mở rộng, từ thiết kế đến phát triển phần mềm.

17/07/2025

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản Procedure Circle (xc, yc, R : integer) ; Var x, y : integer ; Procedure DOIXUNG ; Begin putpixel (xc + x , yc +y, color) ; putpixel (xc - x , yc + y, color) ; putpixel (xc + x , yc - y, color) ; putpixel (xc - x , yc- y, color) ; putpixel (xc + y , yc + x, color) ; putpixel (xc - y , yc + x, color) ; putpixel (xc + y , yc - x, color) ; putpixel (xc - y , yc - x, color) ; End ; Begin For x : = 0 to round(R*Sqrt(2)/2) do Begin y : = round(Sqrt(R*R - x*x)) ; DOIXUNG; End ; End ; 1. Thuật toán xét điểm giữa (MidPoint) Do tính đối xứng của đường tròn nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng là vẽ được cả đường tròn. Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi-1 bằng cách so sánh điểm thực Q(xi+1,y) với điểm giữa MidPoind là trung điểm của S1 và S2. Chọn điểm bắt đầu để vẽ là (0,R).

Giả sử (xi, yi) là điểm nguyên đã tìm được ở bước thứ i (xem hình 1.8), thì điểm (xi+1, yi+1) ở bước i+1 là sự lựa chọn giữa S1 và S2. xi+1= xi + 1 yi+1= yi - 1 yi Trang 18 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản (xi,yi) S1 Q(xi+1,y) yi yi+1 MidPoint yi - 1 S2 Hình 1.8 : Đường tròn với điểm Q(xi+1, y) và điểm MidPoint. F(x,y) < 0 , nếu điểm (x,y) nằm trong đường tròn. F(x,y) = 0 , nếu điểm (x,y) nằm trên đường tròn.

F(x,y) > 0 , nếu điểm (x,y) nằm ngoài đường tròn. Ta có : - Nếu Pi < 0 : điểm MidPoint nằm trong đường tròn. Khi đó, điểm thực Q gần với điểm S1 hơn nên ta chọn yi+1 = yi. - Nếu Pi >= 0 : điểm MidPoint nằm ngòai đường tròn.

Khi đó, điểm thực Q gần với điểm S2 hơn nên ta chọn yi+1 = yi - 1. Mặt khác : Pi+1 - Pi = F(xi+1 +1, yi+1 - 1/2) - F(xi + 1, yi - 1/2) = [(xi+1 +1)2 + (yi+1 - 1/2)2 - R2 ] - [(xi +1)2 + (yi - 1/2)2 - R2 ] = 2xi + 3 + ((yi+1)2 + (yi)2 ) - (yi+1 - yi) Vậy : - Nếu Pi < 0 : chọn yi+1 = yi. Khi đó Pi+1 = Pi + 2xi +3 - Nếu Pi >= 0 : chọn yi+1 = yi - 1. Khi đó Pi+1 = Pi + 2xi - 2yi +5.

- Pi ứng với điểm ban đầu ( x0 , y0 ) = (0,R) là: 5 P0 = F(x0 + 1, y0 - 1/2) = F(1, R - 1/2) = -R 4 Trang 19 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản Lưu đồ thuật toán MidPoint vẽ đường tròn Begin P = 5/4 - R; x=0 ; y= R; Putpixel(x,y,c); No x<y Yes No P<0 Yes P = P + 2*x + 3 P = P + 2*(x-y)+5 y=y-1 x = x +1 putpixel(x,y,color) End Trang 20 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản Minh họa thuật toán MidPoint: Procedure DTR(xc, yc, r, mau : integer); var x, y, p : integer ; begin x:=0 ; y:=r; p:=1 - r; while ( y > x) do begin doi_xung; if (p<0) then p:=p+2*x+3 else begin p:=p+2*(x-y)+5 ; y:=y-1; end; x:=x+1; end; {while} end; 1. Vẽ đường tròn bằng thuật toán Bresenham Tương tự thuật toán vẽ đường thẳng Bresenham, các vị trí ứng với các tọa độ nguyên nằm trên đường tròn có thể tính được bằng cách xác định một trong hai pixel gần nhất với đường tròn thực hơn trong mỗi bước ( xem hình 1. (xi,yi) S1 yi d1 yi+1 = y d2 yi - 1 S2 Hình 1.9 : Đường tròn với khoảng cách d1 và d2. Trang 21 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản Ta có : d1 = (yi)2 - y2 = (yi)2 - (R2- (xi + 1)2 ) d2 = y2 - (yi - 1)2 = (R2- (xi + 1)2 ) - (yi - 1)2 Pi = d1 - d2 Tính Pi+1 - Pi ⇒ Pi+1 = Pi + 4xi + 6 + 2((yi+1)2 - (yi)2 ) - 2(yi+1 - yi) - Nếu Pi < 0 : chọn yi+1 = yi.

Khi đó Pi+1 = Pi + 4xi +6 - Nếu Pi >= 0 : chọn yi+1 = yi - 1. Khi đó Pi+1 = Pi + 4(xi - yi ) + 10. - P0 ứng với điểm ban đầu ( x0 , y0 ) = (0,R) là: P0= 3 - 2R. Minh họa thuật toán vẽ đường tròn bằng Bresenham Procedure DTR_BRES(xc,yc,r,mau : integer); var x,y,p:integer; begin x:=0 ; y:=r; p:= 3 – 2*r ; while ( x<y ) do begin doi_xung; if (p<0) then p:= p + 4*x + 6 else begin p:= p + 4*(x-y) + 10 ; y:=y-1; end; x:=x+1; end;{while} end; 1.

Thuật toán vẽ Ellipse Tương tự thuật toán vẽ đường tròn, sử dụng thuật toán Bresenham để vẽ, ta chỉ cần vẽ 1/4 ellipse, sau đó lấy đối xứng qua các trục tọa độ sẽ vẽ được toàn bộ ellipse. x2 y2 Xét ellipse có tâm O, các bán kính là a và b, phương trình là : + =1 a2 b2 Trang 22 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản Chọn tọa độ pixel đầu tiên cần hiển thị là (xi ,yi) = (0,b). Cần xác định pixel tiếp theo là (xi+1 ,yi+1). Ta có : xi+1= xi + 1 yi+1= yi - 1 yi d1 = (yi)2 - y2 d2 = y2 - (yi - 1)2 Pi = d1 - d2 Tính Pi+1 - Pi 2b 2 ⇒ Pi+1 = Pi + 2((yi+1)2 - (yi)2 ) - 2(yi+1 - yi) + (2xi + 3) a2 2b 2 - Nếu Pi < 0 : chọn yi+1 = yi.

Khi đó Pi+1 = Pi + (2xi +3) a2 2b 2 - Nếu Pi >= 0 : chọn yi+1 = yi - 1. Khi đó Pi+1 = Pi + (2xi +3) +4(1- yi) a2 2b 2 - Pi ứng với điểm ban đầu ( x0 , y0 ) = (0,b) là: P0 = - 2b + 1 a2 Minh họa thuật toán vẽ Ellipse Procedure Ellipse(xc,yc,a,b : integer); var x,y : integer; z1, z2, P : real; procedure dx; begin putpixel (xc + x , yc +y, color) ; putpixel (xc - x , yc + y, color) ; putpixel (xc + x , yc - y, color) ; putpixel (xc - x , yc- y, color) ; end; begin x:=0 y:=b; Trang 23 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản z1:= (b*b)/(a*a); z2:= 1/ z1; P:= 2*z1 - 2*b +1; while (z1* (x/y) ≤ 1) do begin dx; if P < 0 then P:= P + 2*z1*(2*x+3) else begin P:= P + 2*z1*(2*x+3) + 4*(1-y); y:= y -1; end; x:= x+1; end; x:=a ; y:= 0; P:= 2*z2 - 2*a +1; while (z2* (y/x) < 1) do begin dx; if P < 0 then P:= P + 2*z2*(2*y+3) else begin P:= P + 2*z2*(2*y+3) + 4*(1-x); x:= x -1; end; y:= y +1; end; end; 1. Vẽ đường conics và một số đường cong khác Phương trình tổng quát của các đường conics có dạng : Ax2 + Bxy + Cy2 + Dx + Ey + F = 0 Trang 24 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản Giá trị của các hằng số A, B, C, D, E, F sẽ quyết định dạng của đường conics, cụ thể là nếu: B2 - 4AC < 0 : dạng đường tròn (nếu A=C và B=0) hay ellipse. B2 - 4AC = 0 : dạng parabol.

B2 - 4AC > 0 : dạng hyperbol. Áp dụng ý tưởng của thuật toán Midpoint để vẽ các đường conics và một số đường cong khác theo các bước theo các bước tuần tự sau: - Bước 1: Dựa vào dáng điệu và phương trình đường cong, để xem thử có thể rút gọn phần đường cong cần vẽ hay không. - Bước 2: Tính đạo hàm, từ đó phân thành các vùng vẽ. Nếu f '(x) < -1 : yi+1 = yi + 1; xi+1 = xi (hoặc = xi +1) - Bước 3 : Tính Pi cho từng trường hợp để quyết định f '(x) dựa trên dấu của Pi.

Pi thường là hàm được xây dựng từ phương trình đường cong. Cho Pi=0 nếu (xi , yi) thuộc về đường cong. Việc chọn Pi cần chú ý sao cho các thao tác tínn Pi sau này hạn chế phép toán trên số thực. - Bước 4 : Tìm mối liên quan của Pi+1 và Pi bằng cách xét hiệu Pi+1 - Pi - Bước 5 : Tính P0 và hoàn chỉnh thuật toán.

Vẽ đa giác Đường gấp khúc hở Đường gấp khúc kín Hình 1.10 : Hai dạng của đường gấp khúc. Trang 25 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản • Định nghĩa đa giác (Polygone): Đa giác là một đường gấp khúc kín có đỉnh đầu và đỉnh cuối trùng nhau (xem hình 1.10) • Xây dựng cấu trúc dữ liệu để vẽ đa giác Type d_dinh = record x,y: longint; end; dinh = array[0.10] of d_dinh; var d: dinh; Với cách xây dựng cấu trúc dữ liệu như thế này thì chúng ta chỉ cần nhập vào tọa độ các đỉnh và sau đó gọi thủ tục vẽ đường thẳng lần lượt qua 2 đỉnh như (0, 1), (1,2), ., (n-1, n), trong đó đỉnh n trùng với đỉnh 0 thì ta sẽ vẽ được toàn bộ đa giác. • Đa giác được gọi là lồi nếu bất kỳ đường thẳng nào đi qua một cạnh của đa giác thì toàn bộ đa giác nằm về một phía của đường thẳng đó. Ngược lại, nếu tồn tại ít nhất một cạnh của đa giác chia đa giác làm 2 phần thì gọi là đa giác lõm (xem hình 1.11 : Đa giác lồi và đa giác lõm • Thuật toán kiểm tra một đa giác là lồi hay lõm Thuật toán 1: Lần lượt thiết lập phương trình đường thẳng đi qua các cạnh của đa giác.

Ứng với từng phương trình đường thẳng, xét xem các đỉnh còn lại có nằm về một Trang 26 Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản phía đối với đường thẳng đó hay không ? Nếu đúng thì kết luận đa giác lồi, ngược lại là đa giác lõm. Nhận xét : Phương trình đường thẳng y = ax + b chia mặt phẳng ra làm 2 phần. Các điểm nằm C(xc,yc) trên đường thẳng sẽ có yc > axc + b và các điểm D(xd,yd) nằm phía dưới đường thẳng sẽ có yd < axd + b. 1 Ví dụ : Cho đường thẳng AB có phương trình y = x + 1 và hai điểm C, D có tọa 2 độ là C(0,4), D(2,0) ( xem hình 1.12 : Đường thẳng AB và 2 điểm C, D.

1 Ta có : Yc = 4 > axc + b = .0 + 1 2 1 và Yd = 0 < axd + b = .2 + 1 2 Vậy hai điểm C, D nằm về hai phía đối với đường thẳng AB.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu Giáo Trình Kỹ Thuật Đồ Họa Máy Tính Dành Cho Sinh Viên cung cấp một cái nhìn tổng quan về các nguyên tắc và kỹ thuật cơ bản trong lĩnh vực đồ họa máy tính. Nội dung của giáo trình không chỉ giúp sinh viên nắm vững các khái niệm lý thuyết mà còn trang bị cho họ những kỹ năng thực hành cần thiết để áp dụng trong các dự án thực tế. Đặc biệt, tài liệu này nhấn mạnh tầm quan trọng của việc sử dụng phần mềm đồ họa hiện đại và các công cụ hỗ trợ trong quá trình thiết kế.

Để mở rộng kiến thức và khám phá thêm về lĩnh vực này, bạn có thể tham khảo tài liệu Giáo trình kỹ thuật đồ họa cho ngành đa phương tiện. Tài liệu này sẽ cung cấp cho bạn những thông tin bổ ích về kỹ thuật đồ họa trong ngành đa phương tiện, giúp bạn có cái nhìn sâu sắc hơn về ứng dụng của đồ họa máy tính trong các lĩnh vực khác nhau.

Việc tìm hiểu thêm qua các tài liệu liên quan sẽ giúp bạn củng cố kiến thức và nâng cao kỹ năng trong lĩnh vực đồ họa máy tính, mở ra nhiều cơ hội nghề nghiệp hấp dẫn trong tương lai.