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

126 329 0
giáo trình đồ họa máy tính

Đ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

TRƯ NG Đ I H C ĐÀ L T KHOA CÔNG NGH THÔNG TIN ThS. VÕ PHƯƠNG BÌNH GIÁO TRÌNH Đ H A MÁY TÍNH Dành cho sinh viên ngành: Công ngh ph n m m, M ng và truy n thông Đà L t, 2010 M CL C M U 4 Chương 1 GI I THI U V H A MÁY TÍNH 5 1.1 T ng quan h a máy tính 5 1.2 Các thành ph n cơ b n c a h h a máy tính 7 1.3 H t a th gi i th c, h t a thi t b và h t a chu n 7 Chương 2 CÁC THU T TOÁN V I TƯ NG H A CƠ B N 11 2.1 Thu t toán v o n th n g 11 2.1.1 Thu t toán DDA (Digital DifferentialAnalyzer) 12 2.1.3 Thu t toán MidPoint 17 2.2 Thu t toán MidPoint v ư ng tròn 23 2.3 Thu t toán MidPoint v Ellipse 27 2.4. ư ng cong tham s 31 2.4.1. ư ng cong Bezier 31 2.4.1.1. Thu t toán de Casteljau 31 2.4.1.2. Thu t toán Horner 34 2.4.2. ư ng cong B-Spline 37 Bài t p chương 2 42 Chương 3 TÔ MÀU 44 3.1 Gi i thi u v màu s c 44 3.2 Tô màu ơn gi n 44 3.3 Tô màu theo dòng quét (ScanConvert) 48 3.4 Tô màu theo v t d u loang (FloodFill) 52 Bài t p chương 3 54 Chương 4 PHÉP BI N I HAI CHI U 55 4.1 Nh c l i các phép toán cơ s v i ma ma tr n. . 55 4.2 Phép t nh ti n 56 4.3 Phép bi n i t l 57 4.4 Phép quay 57 4.5 Phép i x ng 60 4.6 Phép bi n d ng 60 Giáo trình H a Máy Tính 2 4.7 Phép bi n i Affine ngư c 61 4.8 H t a thu n nh t 62 4.9 K t h p các phép bi n i 63 Bài t p chương 4 64 Chương 5 GIAO CÁC I TƯ NG H A 66 5.1. M u 66 5.2. Giao c a hai o n th ng 67 5.3. o n th ng và hình ch nh t 68 5.3.1 Tìm giao b ng cách gi i h phương trình 69 5.3.2 Thu t toán chia nh phân 69 5.3.3 Thu t toán Cohen-Sutherland 72 5.3.4 Thu t toán Liang-Barsky 74 5.4. Giao c a o n th ng và a giác l i 77 5.5. Giao hai a giác 80 5.6. K thu t Ray tracing 85 Chương 6 H A BA CHI U 91 6.1. Gi i thi u h a 3 chi u 91 6.2. Bi u di n i tư ng 3 chi u 92 6.3. Các phép bi n i 3 chi u 98 6.3.1. H t a bàn tay ph i - bàn tay trái 98 6.3.2. Các phép bi n i Affine cơ s 99 6.3.2.1 Phép quay quanh tr c x 99 6.3.2.2 Phép quay quanh tr c y 100 6.3.2.3 Phép quay quanh tr c z 100 6.3.2.4 Phép quay quanh tr c song song v i tr c t a 101 6.3.2.5 Phép quay quanh tr c b t kỳ 103 PH L C: THƯ VI N H A OpenGL .107 TÀI LI U THAM KH O 120 Giáo trình H a Máy Tính 3 M U h a máy tính là m t trong nh ng lĩnh v c h p d n và phát tri n nhanh c a Công ngh Thông tin. Nó ư c ra i b i s k t h p c a 2 lĩnh v c thông tin và truy n hình, và ư c s d ng r ng rãi trong h u h t các ng d ng như khoa h c và công ngh , y h c, giáo d c, ki n trúc, và k c gi i trí. Ngày nay, nh vào s ti n b c a khoa h c k thu t nên ph n c ng và giá thành c a máy tính càng lúc càng phù h p, các k thu t h a ư c ng d ng trong th c t nhi u nên ngày càng có nhi u ngư i quan tâm nghiên c u n lĩnh v c này. Tuy nhiên, vi c d y và h c k thu t h a mày tính thì không ơn gi n vì ch này có nhi u v n ph c t p, liên quan n tin h c và c toán h c. H u h t các gi i thu t v , tô màu 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. Giáo trình h a máy tính này ư c xây d ng d a trên kinh nghi m gi ng d y ã qua và d a trên tài li u tham kh o chính là : “Donald Hearn, M. Pauline Baker ; Computer Graphics ; Prentice-Hall, Inc., Englewood Cliffs, New Jersey , 1986”. Giáo trình h a máy tính 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 v i 45 ti t lý thuy t và 30 ti t th c t p. N i dung c a giáo trình này g m có 3 v n chính như sau : • Trình bày các thu t toán v và tô các ư ng cơ b n như ư ng th ng, a giác, ư ng tròn, ellipse và các ư ng Bezier, B-Spline. Các thu t toán này giúp cho sinh viên có th t thi t k v và tô màu m t mô hình h a. • N i dung th hai c p n các phép bi n i Affine, tìm giao các i tư ng, tô màu c a h a hai chi u. • N i dung th ba trình bày v quan sát, hi n th và bi n i Affine trên không gian ba chi u. Trong quá trình biên so n ch c không tránh kh i thi u sót, tôi xin trân tr ng nh n ư c s góp ý c a các quý ng nghi p và sinh viên giáo trình ngày càng ư c hoàn thi n hơn. Giáo trình H a Máy Tính 4 Ch ươ ng 1 GI I THI U V H A MÁY TÍNH N i dung chính T ng quan v h a máy tính. Các ng d ng c a h a máy tính. Các thành ph n cơ b n c a h h a máy tính. H t a th c và h t a h a. 1.1 T ng quan h a máy tính h a máy tính bao g m t t c nh ng gì liên quan n vi c s d ng máy tính phát sinh ra hình nh. Các v n liên quan n công vi c này bao g m: t o, lưu tr , thao tác trên các mô hình và các nh. Ngày nay, h u h t các chương trình so n th o, b ng tính s d ng h a trong giao di n v i ngư i dùng. S phát tri n c a h a máy tính ngày càng r ng rãi v i các ch h a hai chi u (2D) và 3 chi u (3D), và cao hơn, nó ph c v trong các lĩnh v c xã h i h c khác nhau như khoa h c, giáo d c, y h c, k thu t, thương m i và gi i trí. Tính h p d n và a d ng c a h a máy tính có th ư c minh h a r t tr c quan thông qua vi c kh o sát các ng d ng c a nó. h a máy tính ư c s d ng r t r ng rãi vì có n 80% các ng d ng liên quan n hình nh và ư c ng d ng trong nhi u lĩnh v c khác nhau như công nghi p, thương m i, qu n lý, giáo d c, gi i trí, …v.v. S lư ng các chương trình h a ng d ng r t l n và phát tri n liên t c. Sau ây là m t s ng d ng tiêu bi u c a h a trong th c t : • H tr thi t k - CAD/CAM (Computer-Aided Design/ Computer-Aided Manufacturing) : Các h th ng thi t k và ch t o v i s tr giúp c a máy tính ư c ng d ng trong các lĩnh v c như phân tích thi t k k t c u xây d ng, công nghi p i n t , công nghi p th i trang, các ngành công nghi p ch t o ôtô, máy bay, xe máy Giáo trình H a Máy Tính 5 • th và b n (Graphs and Charts) : ây là ng d ng ch y u trong lĩnh v c h a minh h a, ng d ng này cho phép hi n th các bi u d li u cũng như trong lĩnh v c bi u di n và x lý h a. M t trong s nh ng ng d ng hi n nay là h th ng thông tin a lí GIS (Geographical Information System).: • Gi i trí: V i s h tr h a hi n nay chúng ta có th s n xu t nhi u s n ph m ph c v cho lĩnh v c gi i trí c bi t là phim ho t hình và các trò chơi trên máy tính. Nhi u ph n m m và ngôn ng l p trình h tr ra i cho phép ta t o ra các hình nh ng g n v i v i cu c s ng th c. Trong giáo trình này chúng ta s làm quen v i công c OpenGL. • ng d ng mô ph ng và th c t i o (Simulation and Virtual Reality) : Bên c nh vi c h tr thi t k ki n trúc và trong s n xu t công nghi p, h a máy tính còn có ng d ng r t quan tr ng trong mô ph ng các công trình ki n trúc, các di s n văn hóa, trong gi ng d y các môn h c. ng d ng th c t i o là m c cao hơn c a mô ph ng. Th c t i o áp d ng các k thu t h ak th pv i các thi t b 3D t o ra các ng d ng mô ph ng gi ng như th c nhưng ư c th c hi n trên máy tính như lái máy bay, b n súng trong quân s , gi i ph u trong y khoa, …. • X lý nh (Image Processing) : Các kĩ thu t x lý và thay i m t b c nh có s n và ư c áp d ng trong nhi u lĩnh v c c a i s ng. Ví d ta có th s d ng ph n m m khôi ph c m t b c nh, phân tích các b c nh ư c ch p t v tinh • K ĩ thu t nh n d ng (Pattern Recognition) : ây là m t lĩnh v c c a kĩ thu t x lí nh, các chuyên gia s xây d ng m t thư vi n nh g c b ng cách áp d ng các thu t toán phân tích và ch n l c t nh ng nh m u có s n. D a trên thư vi n ó các chuyên gia có th phân tích và t h p nh • Giao di n h a ng ư i dùng (Graphical User Interface-GUI) : R t nhi u ph n m m ng d ng ngày nay cung c p GUI cho ngư i dùng. Thành ph n chính c a m t giao di n h a ó là chương trình qu n lí c a s cho phép ngư i s d ng hi n th nhi u c a s ngư i ta g i ó là các c a s hi n th . Nh có GUI mà ngư i s d ng có th d dàng thi t k giao di n cho các chương trình ng d ng. Giáo trình H a Máy Tính 6 1.2 Các thành ph n c ơ b n c a h h a máy tính phát tri n h th ng h a máy tính ta c n ph i trang b c ph n c ng l n ph n m m cũng như các ng d ng khác. Trong ó, các thi t b ph n c ng là tùy thu c vào t ng ng d ng h a c th mà có th c n thi t ho c không c n thi t. Ph n c ng • Thi t b thu nh n: l y d li u u vào cho ng d ng h a như bàn phím, chu t, máy quét, camera, • Thi t b hi n th : hi n th hình nh c a ng d ng h a như các lo i màn hình CRT, LCD, … • Thi t b tương tác: làm giao ti p trung gian gi a ngư i dùng và các ng d ng h a th c t i o, t o c m giác ngư i dùng gi ng như thao tác tr c ti p trong môi trư ng th gi i th c như găng tay, kính 3D, … Ph n m m Ph n m m h a có th phân thành 2 lo i: các công c l p trình và các trình ng d ng h a ph c v cho m t m c ích nào ó. Các công c l p trình cung c p m t t p các thư vi n h a có th ư c dùng trong các ngôn ng l p trình c p cao như Pascal, C/C++/C#, Java, … hay th m trí có c m t thư viên h a có th nhúng vào các ngôn ng l p trình c p b t kỳ như OpenGL, DirectX. Các hàm cơ s c a nó bao g m vi c t o các i tư ng cơ s c a hính nh như o n th ng, a giác, ư ng tròn, … thay i màu s c, ch n khung nhìn, bi n i affine, … phát tri n các ng d ng h a máy tính c n có các lo i ph n m m sau: • T o mô hình: 3DS Max, Maya, … • L p trình, phát tri n ng d ng: OpenGL, DirectX, … 1.3 H t a th gi i th c, h t a thi t b và h t a chu n M th h a bao g m 3 mi n như sau: • Mi n i u khi n : bao b c toàn b h th ng. Giáo trình H a Máy Tính 7 • Mi n th c : n m trong mi n i u khi n. Khi m t giá tr n m trong mi n th c, nó s ư c chuy n thành s th c d u ph y ng, và khi có m t s r i kh i mi n này thì nó s ư c chuy n thành s nguyên. • Mi n hi n th : n m trong mi n i u khi n nhưng phân bi t v i mi n th c. Ch có giá tr s nguyên m i n m trong mi n hi n th . 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. Các i tư ng trong th gi i th c ư c mô t b ng t a trong mi n 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 c trưng v thông s k thu t 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 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 ư 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 hình nh b ng cách thay i màu s c [...]... y =y0; Giáo trình H a Máy Tính glVertex2i(x, y); while (x 1: x = x – i+1 i y i+1 =y –1 i Hình 2.2 : Hai trư ng h p m >1 và 0 < m < 1 Cài t minh h a thu t toán DDA 12 void DDALine(int x0, int y0, int x1, int y1) { int x; float dx, dy, y, m; dx:= x1 – x0; dy:= y1 – y0; m:= dy/dx; y = y0; for (x=x0; x b2(x+1)) {Vùng 1} { Giáo trình H a Máy Tính If (d10) / {Vùng 2} { if (d2 . viên giáo trình ngày càng ư c hoàn thi n hơn. Giáo trình H a Máy Tính 4 Ch ươ ng 1 GI I THI U V H A MÁY TÍNH N i dung chính T ng quan v h a máy tính. Các . n cho các chương trình ng d ng. Giáo trình H a Máy Tính 6 1.2 Các thành ph n c ơ b n c a h h a máy tính phát tri n h th ng h a máy tính ta c n ph . ng d ng c a h a máy tính. Các thành ph n cơ b n c a h h a máy tính. H t a th c và h t a h a. 1.1 T ng quan h a máy tính h a máy tính bao g m t t c

Ngày đăng: 23/10/2014, 21:49

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan