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

Bài giảng môn học Đồ họa máy tính - ĐH Hàng Hải VN

100 25 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 2,3 MB

Nội dung

Tập bài giảng Đồ họa máy tính gồm có 6 chương với những nội dung chính sau: Tổng quan về đồ họa máy tính, các thuật toán vẽ đường và tô màu cơ bản, các phép biến đổi hình học 2D, hiển thị các đối tượng 2D, tổng quan về đồ họa 3D, các phép biến đổi trong đồ họa 3D.

Tr ng H Hàng H i Vi t Nam Khoa Công ngh thông tin = = =&*&= = = Bài gi ng mơn h c H A MÁY TÍNH L i nói u Nh m ph c v cho cơng tác gi ng d y, h c t p môn h c th y trị khoa Cơng ngh thơng tin - tr ng h a máy tính c a H HÀNG H I VI T NAM, b môn H thông thông tin ti n hành t ng h p, biên so n s b t p gi ng mơn h c h a máy tính T p gi ng trình K thu t c biên so n ch y u d a Giáo h a máy tính c a khoa CNTT - h a máy tính (dùng cho h t o t HBK Hà N i Giáo trình xa) c a HQG TP H Chí Minh Ngồi chúng tơi có tham kh o cu n Computer Graphics c a Donald Hearn & M Pauline Baker, nhà xu t b n Prentice-Hall, New Jersey, 1986 m t s tài li u khác (xem ph n tài li u tham kh o) h c t t mơn h c này, ngồi nh ng ki n th c c s v l p trình, sinh viên c n ph i c trang b nh ng ki n th c c b n v i s , gi i tích, hình h c gi i tích, hình h c h a hình, ki n trúc máy tính thi t b ngo i vi, Th c s h a máy tính m t môn h c không n gi n, s! d ng nhi u cơng c tốn h c ịi h"i ki n th c t ng h p Vì ây l n u tiên biên so n nên ch#c ch#n khơng tránh kh"i nh ng thi u sót R t mong nh n em sinh viên cs óng góp ý ki n c a quý ng nghi p c a công vi c biên so n ngày t t h n B môn H th ng thông tin Khoa Công ngh thông tin - Tr ng H Hàng H i M cl c M c l c Ch ng 1: T ng quan v h a máy tính 1.1 Khái ni m v h a máy tính l ch s phát tri n 1.2 K thu t h a t ng tác(Interactive Computer Graphics) 1.3 Khái quát v h th ng h a 1.3.1 Ph n c ng 1.3.2 Ph n m m 11 1.4 Các h màu c b n 13 1.4.1 Không gian RGB (RGB space) 14 1.4.2 Không gian HSL 15 1.4.3 Không gian HSV 16 1.4.4 Không gian màu CMY (Cyan - Magenta - Yellow) 17 Ch ng 2: Các thu t tốn v ng tơ màu c b n 19 2.1 H t a th gi i th c, h t a thi t b h t a chu n 19 2.1.1 H t a th gi$i th c 19 2.1.3 H t a thi t b chu%n (Normalized device coordinates) 20 2.2 Các thu t toán v ng d a i m 21 2.2.1 Các thu t toán v& ng th'ng 21 2.2.2 Các thu t tốn v& ng trịn 27 2.3 Các thu t tốn tơ màu 33 2.3.1 Tô màu theo t ng i m (ph ng pháp tô n gi n) 33 2.3.2 Tô màu theo dòng quét (scan - line) 37 ng biên 41 2.3.3 Ph ng pháp tô màu d a theo Ch ng 3: Các phép bi n i hình h c 2D 45 3.1 Các phép bi n i hình h c c s 45 3.1.1 Phép t nh ti n 45 3.1.2 Phép bi n i t( l 46 3.1.3 Phép quay 47 3.1.4 Bi u di)n ma tr n c a phép bi n i 47 3.1.5 H t a thu n nh t (hormogeneous coordinates) 48 3.2 K t h p phép bi n i 49 3.2.1 K t h p phép t nh ti n 49 3.2.2 K t h p phép t( l 50 3.2.3 K t h p phép quay 50 3.2.4 Phép quay có tâm quay i m b t k* 50 3.3 M t s tính ch t c a phép bi n i Affine 51 ng th'ng 51 3.3.1 Phép bi n i affine b o tồn 3.3.2 Tính song song c a ng th'ng c b o toàn 51 3.3.3 Tính t+ l v kho ng cách c b o toàn 51 3.4 M t s phép bi n i khác 52 3.4.1 Phép i x ng 52 3.4.2 Phép bi n d ng 52 3.4.3 Phép bi n i ng c 53 3.4.4 Phân rã phép bi n i 53 3.5 Phép bi n i gi a h t a 54 Ch ng 4: Hi n th i t ng 2D 56 4.1 Quy trình hi n th i t ng 2D 56 4.1.1 M t s khái ni m 56 4.1.2 H t a quan sát h t a thi t b chu%n 58 4.1.3 Chuy n i t c!a s quan sát sang vùng quan sát 59 4.2 Các thu t tốn c t xén hình 60 4.2.1 Thu t toán Cohen - Sutherland 61 4.2.2 Thu t toán Liang - Barsky 66 Ch ng 5: T ng quan v h a 3D 71 5.1 Khái quát chung 71 5.1.1 S l c v quy trình hi n th 72 5.1.2 Mơ hình khung n i k t 73 5.1.3 V& i t ng theo mơ hình khung n i k t s! d ng phép chi u 75 5.1.4 Phép chi u song song (Parallel Projection) 76 5.1.5 Phép chi u ph i c nh (Perspective Projection) 78 5.2 Bi u di n i t ng 3D 79 5.2.1 Bi u di)n m,t a giác 80 ng cong m,t cong 85 5.2.2 Các 5.2.3 Các m,t có quy lu t(ruled surfaces) 85 5.2.4 Các m,t tròn xoay (Surfaces of revolution) 87 5.2.5 Các m,t cong b c hai 88 Ch ng 6: Các phép bi n i h a 3D 90 6.1 Các phép bi n i hình h c 90 6.1.1 M t s khái ni m liên quan 91 6.1.2 Phép t nh ti n 92 6.1.3 Phép t( l 93 6.1.4 Phép bi n d ng 94 6.1.5 Phép quay 94 6.1.6 K t h p phép bi n i Affine chi u 98 6.2 Phép bi n i mô hình phép bi n i h tr c t a 98 Tài li u tham kh o 100 Ch ng T ng quan v 1.1 Khái ni m v h a máy tính h a máy tính l ch s phát tri n K thu t h a máy tính ph ng pháp công ngh dùng vi c chuy n i qua l i gi a d li u hình nh hình b ng máy tính K thu t h a hay h a máy tính cịn c hi u d $i d ng ph ng pháp k thu t t o hình nh t mơ hình tốn h c mơ t i t ng hay d li u l y c t i t ng th c t M t s chuyên gia máy tính cho r ng K thu t h a máy tính có th nh ó nghiên c u, xây d ng ngh-a nh m t l-nh v c c a công ngh thông tin mà t p h p công c (mô hình lý thuy t th vi n l p trình) khác ki n t o, xây d ng, l u tr x! lý mơ hình(model) hình nh(image) c a i t ng, s v t khác cu c s ng, s n xu t nghiên c u Các mơ hình hình nh có th k t qu thu c t nh ng l-nh v c khác c a r t nhi u ngành khoa h c - k thu t ( V t lý, toán h c, thiên v.n h c, c khí, ki n trúc ) bao trùm r t nhi u th lo i a d ng phong phú: c u trúc phân t!, c u trúc sinh h c, mơ hình tàu v/ tr , Thu t ng k thu t h a máy tính (Computer Graphics) c xu t b i m t chuyên gia ng i M tên William Fetter vào n.m 1960 Khi ó ơng ang nghiên c u xây d ng mơ hình bu ng lái máy bay cho hãng máy bay Boeing William Fetter ã d a hình nh 3D c a mơ hình ng i phi cơng bu ng lái xây d ng nên m t mơ hình t i u cho máy bay Boeing ây ph ng pháp nghiên c u r t m$i vào th i k* ó Ph ng pháp có nh ng tính n.ng v t tr i h n t t c ph ng pháp nghiên c u xây d ng mô hình bu ng lái máy bay truy n th ng tr $c ó c áp d ng t i Boeing Ph ng pháp cho phép k s thi t k quan sát m t cách tr c quan v trí c a phi cơng bu ng lái William Fetter ã ,t tên cho ph ng pháp c a "Computer Graphics" L ch s! h a t nh ng n.m 1960 c ánh d u b i d án Sketchpad t i MIT v$i Ivan Sutherland t i h i ngh Fall Joint Computer v$i s ki n l n u tiên t o m$i, hi n th thay i c d li u hình nh tr c ti p hình th i gian th c (hình 1.1) Hình 1.1: Hình nh h at ng tác u tiên Sketchpad K thu t h a liên t c c hoàn thi n vào nh ng n.m 1970 v$i s xu t hi n c a chu%n h a làm t.ng c ng kh n.ng giao ti p tái s! d ng c a ph n m m c/ng nh th vi n h a S phát tri n bùng n c a công ngh vi i n t! l-nh v c ph n c ng máy tính nh ng n.m 1980 làm xu t hi n hàng lo t v+ m ch h0 tr cho vi c truy xu t h a i v$i s gi m giá k c a máy tính cá nhân (PC) ã làm h a i sâu vào cu c s ng th c ti)n K t n.m 1990 t$i k thu t h a 3D phép x! lý c phát tri n m nh m& cho i hàng lo t nh ng s n ph%m h a ng d ng th c t nh thi t k mơ hình, games, phim ho t hình, k x o i n nh, Các v+ m ch h a cho máy tính cá nhân th ng tr thi tr ng h a nh : Nvidia, ATi, 3DLabs, ngày hoàn thi n cung c p ngày nhi u kh n.ng cho ng i s! d ng Liên ti p hàng t( ô la c u t cho h a máy tính h a h1n s phát tri n không ng ng nh ng s n ph%m ngày cc i ti n s& quà t,ng mong i cho nh ng yêu thích l-nh v c 1.2 K thu t h at ng tác(Interactive Computer Graphics) C/ng nh m i l-nh v c khác công ngh thông tin, m t h th ng s! d ng k thu t h a t ng tác m t h th ng x! lý thông tin bao g m thành ph n v$i thao tác t ng ng: • Nh p d li u: thông qua thi t b vào nh nh chu t, máy quét, bàn phím, • X! lý l u tr d li u • Hi n th /K t xu t k t qu : thông qua thi t b nh hình, máy in, Ngồi ,c thù chung nh ã li t kê trên, h th ng k thu t h a t ng tác cịn có m t ,c i m r t ,c tr ng c a mình: h th ng này, thơng tin d li u ,c tr ng c hi n th hình m t cách tr c quan ng i s! d ng có th quan sát, theo dõi thay i giá tr ho,c khuôn d ng c a chúng m t cách t ng tác (interactive) l p t c nh ng thay i s& c h th ng ghi nh n x! lý K t qu c a s thay i s& ch th ng x! lý mơ hình, c u trúc ho,c hình nh c a i t ng hi n th chúng hình nh ng i s! d ng mong mu n Nh p/vào d li u L u tr x! lý Hi n th k t qu USER Hình 1.2: Mơ hình chung c a h h a t ng tác Nh mơ hình chung c a m t h th ng s! d ng k thu t h a t ng tác, th y ng i s! d ng có kh n.ng giao ti p t ng tác v$i h th ng c giai o n trình x! lý thông tin H th ng h a t ng tác u tiên c thi t k xây d ng b i IvanSutherland n.m 1963 H th ng Sketchpad c dùng thi t k m ch i n bao g m nh ng thành ph n sau: • CRT hình • Bút sáng m t keyboard bao g m s phím b m ch c n.ng • Máy tính ch a ch ng trình x! lý thơng tin Ng i s! d ng có th v& m ch i n tr c ti p lên hình thơng qua bút sáng ch ng trình s& phân tích tính tốn nh ng thơng s c n thi t c a m ch i n ng i s! d ng v& nên Hình 1.3: Ivan Sutherland h th ng Sketchpad (1962) 1.3 Khái quát v h th ng h a M th h a bao gi c/ng có hai thành ph n ó ph n c ng ph n m m Ph n c ng bao g m thi t b hi n th nh p d li u,… Ph n m m bao g m công c l p trình trình ng d ng h a Chúng ta s& l n l t kh o sát thành ph n 1.3.1 Ph n c ng 1.3.1.1 Thi t b hi n th Nói chung, hình thi t b hi n th thông d ng nh t m t h h a Các thao tác c a h u h t hình u d a thi t k c a ng tia âm c c (CRT – cathode ray tube) A C u t o chung c a CRT Hình 1.6 minh h a thao tác c s c a m t ng tia âm c c M t chùm tia i n t! (tia âm c c) phát t m t súng i n t!, v t qua h th ng h i t (focusing) d2n h $ng (deflection) s& h $ng t$i v trí xác nh c ph m t l$p phosphor T i m0i v trí t ng tác v$i tia i n t!, h t hình phosphor s& phát m t ch m sáng nh" Vì ánh sáng phát b i h t phosphor m d n r t nhanh nên c n ph i có m t cách ó trì nh hình M t cách ó 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 tia i n t! tr l i v trí c/ Ki u hi n th g i refresh CRT Hình 1.4: C u t o c a CRT Có nhi u lo i phosphor c dùng m t CRT Ngoài màu s#c ra, i m khác gi a lo i phosphor " b n” (persistent), ó kho ng th i b n gian phát sáng sau tia CRT khơng cịn tác ng L$p phosphor có th p c n t c làm t i cao h n gi cho hình nh hình kh"i nhịe Lo i th ng r t t t cho ho t hình, r t c n thay i hình nh liên t c b n cao th ng c dùng cho vi c hi n th nh L$p phosphor có t-nh, ph c t p cao M,c dù m t s lo i phosphor có b n l$n h n giây, nhiên hình h a th ng c xây d ng v$i b n dao ng t 10 n 60 micro giây S l ng t i a i m có th hi n th m t CRT c g i phân gi i (resolution) M t nh ngh-a xác h n c a phân gi i s l ng i m m t centimet mà có th c v& theo chi u ngang chi u d c, m,c dù th ng c xem nh t ng s i m theo m0i h $ng Kích th $c v t lí c a hình h a c tính t dài c a ng chéo hình, th ng dao ng t 12 n 27 inch ho,c l$n h n M t hình CRT có th c k t h p v$i nhi u lo i máy khác nhau, ó s l ng i m hình có th c v& th t s tùy thu c vào kh n.ng c a h th ng mà k t h p vào M t thu c tính khác c a hình n a t+ s ph ng (aspect ratio) T+ s ph ng t+ l c a i m d c i m ngang c n phát sinh o n th'ng có dài n v theo c hai h $ng hình (trong m t s tr ng h p ng i ta th ng dùng t+ s ph ng nh t+ s c a i m theo chi u ngang so v$i i m theo chi u d c) V$i hình có t+ s ph ng khác 1, d) dàng nh n th y hình vng hi n th s& có d ng hình ch nh t, hình trịn s& có d ng hình ellipse Th c khái ni m t+ s ph ng xu t phát t b n ch t kho ng cách (n u tính m t n v dài) gi a i m d c không b ng kho ng cách gi a i m ngang M t t+ s ph ng có giá tr ¾ có ngh-a v& i m theo chi u d c s& có dài v$i vi c v& i m theo chi u ngang B Màn hình d ng i m (raster - scan display) Màn hình d ng i m d ng th ng g,p nh t s d ng hình s! d ng CRT d a cơng ngh truy n hình Trong h th ng này, chùm tia i n t! s& c quét ngang qua hình, m0i l n m t dịng qt tu n t t xu ng d $i S b t t#t c a i m sáng hình ph thu c vào c ng c a tia i n t! ây c s c a vi c t o hình nh hình M0i i m hình c g i m t pixel pel (vi t t#t c a picture c l u tr element) Các thơng tin v hình nh hi n th hình m t vùng b nh$ g i vùng m làm t i (refresh buffer) vùng m sáng c a khung (frame buffer) Vùng b nh$ l u tr t p giá tr c ng tồn b i m hình ln t n t i m t song ánh gi a m0i i m hình m0i ph n t! vùng Hình 1.5: Quá trình t o hình nh c a tia quét thay i hình nh c n hi n th , giá tr t ng ng v$i v trí sáng ph i c ,t vào vùng m khung Hình 1.8 minh h a giá tr t ng ng vùng m khung hi n th hình nh c a ch A hình i v$i hình en tr#ng, vùng m khung c g i bitmap, v$i hình khác vùng m khung th ng c g i pixmap t o nh en tr#ng, n gi n ch+ c n l u thông tin c a m0i pixel b ng bit (các giá tr 0, s& t ng tr ng cho vi c t#t (t i), b t (sáng) pixel hình) Trong tr ng h p nh nhi u màu, ng i ta c n nhi u bit h n, n u c l u b ng b bit, ta có th có 2b giá tr màu phân thông tin c a m0i pixel bi t cho pixel ó Hình 1.6: Song ánh gi a vùng m khung hình Trong hình màu, ng i ta nh ngh-a t p màu làm vi c m t b ng tra (LookUp Table - LUT) M0i ph n t! c a LUT nh ngh-a m t b ba giá tr R (Red), G (Green), B (Blue) mơ t m t màu ó 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 ó LUT B ng LUT có th c thay i b i ng d ng ng i l p trình có th can thi p i u n V$i cách làm có th ti t ki m khơng gian l u tr cho m0i ph n t! vùng m khung S ph n t! c a LUT c xác nh t s l ng bits/pixel N u m0i ph n t! c a vùng m khung dùng b bits l u thông tin c a m t pixel, b ng LUT có 2b ph n t! N u b=8, LUT s& có 28=256 ph n t!, ó s màu có th c hi n th m t lúc hình c th c hi n t c 60 n 80 Vi c làm t i hình d ng frame/giây t c làm t i cịn c bi u di)n b ng n v Hertz (Hz – s chu kì/ giây), ó m t chu kì t ng ng v$i m t frame S! d ng n v này, có th mơ t t c làm t i 60 frame/giây n gi n 60Hz Khi t n cu i m0i dòng quét, tia i n t! quay tr l i bên trái c a hình b#t u dịng qt k ti p Vi c quay tr l i phía trái hình sau làm t i m0i dòng quét c g i tia h i ngang (horizontal retrace) Và t$i cu i m0i frame, tia i n t! (tia h i d c – vertical retrace) quay tr l i góc bên trái c a hình chu%n b b#t u frame k ti p Trong m t s hình, m0i frame c hi n th thành hai giai o n s! d ng k- thu t làm t i an xen (interlaced refesh) giai o n u tiên, tia quét s& quét m t s dòng t xu ng d $i, sau tia h i d c, dòng l i s& c quét Vi c an xen dòng quét cho phép th y c tồn hình hi n th ch+ m t n!a th i gian so v$i dùng quét t t c dòng m t l n t xu ng d $i K- thu t th ng c dùng cho lo i hình có t c làm t i th p 10 Hình 5.15: Minh h a m t m,t có quy lu t B Ph ng trình tham s Vì m,t có quy lu t hồn tồn d a c s ng th'ng v$i ph ng trình d ng tham s p(v) = (1 - v)p0 + vp1, nên ta có th suy d ng c a m t cách t ng t nh sau: p(u,v) = (1 - v)p0(u) + vp1(u) (5.5) N u u bi n i t ustart n uend , ta th y m,t cong s& t p h p c a ng th'ng n i c,p i m t ng ng p0(u’) (thu c ng cong p0(u)) ng cong p1(u)) v$i u’ n m (ustart, uend) p1(u’) (thu c N u không gi$i h n u, v ta s& có m,t cong tr i dài vô t n, m,t cong c t o b ng cách gi$i h n u, v o n [0, 1] "ruled patch" s& C Kh o sát mơ hình minh h a • Hình tr$ (Cylinder) Hình tr hình c t o m t ng th'ng L, g i ng sinh c quét d c theo m t ng cong p0(u), g i ng chu%n (generator) (directrix), ng cong p0(u) n m m t m,t ph'ng ó Hình 5.16: Minh h a m t hình tr T ph ng trình t ng qt c a m,t cong có quy lu t : p(u, v) = p0(u) + vd(u), ó d(u) = p1(u) - p0(u) (5.6) quét ng th'ng song song v$i nên ta có d h ng s , ph ng trình tham s c a hình tr : p(u, v) = p0(u) +vd M t nh ng d ng quen thu c c a hình tr hình tr tròn (circular cylinder) ng v$i tr ng h p ng chu%n hình trịn N u ng trịn n m m,t ph'ng xy s& có p0(u) = (cos(u), sin(u), 0) 86 Hình 5.17: Minh h a m t hình tr trịn • Hình nón (Cone) Hình nón hình c t o m t ng th'ng di chuy n d c theo m t ng cong ph'ng cho tr $c (plane curve), ng th'ng cịn có thêm nh g i +nh c a hình nón tính ch t n a ln i qua m t i m c Hình 5.18: Minh h a hình nón Ph ng trình tham s c a hình nón có d ng t ng t d ng t ng quát nh ng p0(u) h ng s : p(u,v) = (1 - v)p0 + vp1(u) (5.7) Trong tr ng h p t t c ng th'ng s& i qua p0 ng v$i v = ng cong ph'ng mà t t c ng th'ng i qua ng v$i v = 5.2.4 Các m"t tròn xoay (Surfaces of revolution) M,t tròn xoay c t o quay tròn m t ng cong ph'ng C ó quanh m t tr c Hình v& 5.19 minh h a m t ng cong C n m m,t ph'ng xz quay quanh tr c z C th ng c g i m,t c#t nghiêng c cho b i ph ng trình tham s c(v) = (x(v), z(v)) ó v bi n i kho ng (vstart, vend) ó Hình 5.19: Minh h a m t m,t tròn xoay 87 i v$i m,t tròn xoay, m0i i m (x(v), z(v)) thu c C c quét xung quanh m t tr c t a d $i s ki m sốt c a tham s u, u góc mà m0i i m c quay quanh tr c Các v trí khác c a ng cong C quanh tr c c g i ng kinh n (meridians) Khi i m (x(v), 0, z(v)) c quay b i u radian, s& tr thành (x(v)cos(u), x(v)sin(u), z(v)) N u quay i m m t vòng quanh tr c s& nh n c m t hình trịn Nh v y, ng v$i v h ng s , ng biên s& ng tròn ng c g i ng v- n c a m,t Kinh n t i v có bán kính x(v) n m cao z(v) so v$i m,t ph'ng xy, ó m t i m b t kì m,t d ng s& có vector v trí : p(u, v) = (x(v)cos(u), x(v)sin(u), z(v)) (5.8) Nh n xét : N u ng cong c(v) ng th'ng song song v$i tr c z cách z m t n v , t c c(v) = (1, v) ng quét quanh tr c z s& t o m t hình tr M,t c u tr ng h p n gi n nh t c a d ng m,t tròn xoay ng cong C tr ng h p n!a ng tròn cho b i i m (Rcos(v), Rsin(v)), v ch y kho ng t -π/2 n π/2 Lúc ph ng trình hình c u s& có d ng : p(u,v) = (Rcos(v)cos(u), Rcos(v)sin(u), Rsin(v)) (5.9) ó -π/2 ≤ v ≤ π/2, ≤ u ≤ 2π Hình 5.20: Minh h a m,t c u 5.2.5 Các m"t cong b c hai M t l$p m,t cong r t thông d ng m,t cong b c hai Chúng c bi u di)n b i ph ng trình b c hai M,t c u c/ng thu c l$p m,t cong Ngồi cịn có m,t ellipsoid, paraboloid hyperboloid Các m,t b c hai th ng i t ng c s c a h h a Nh ng i t ng khác ph c t p h n có th c t o t nh ng i t ng Ph ng trình t ng quát bi u di)n m,t cong lo i là: Ax2 + By2 + Cz2 + Dxy + Eyz + Fzx + Gx + Hy + Iz + J = A M t c u Trong h t a Decartes, m,t c u bán kính R v$i tâm ,t t i g c t a xác nh b i t p i m có t a (x,y,z) th"a ph ng trình: 88 x2 + y2 + z2 = R2 (5.10) Ph ng trình (5.10) th ng g i ph ng trình t#c c a m,t c u Nh ph n tr $c ã c p, ta có th bi u di)n m,t c u b ng ph ng trình tham s : x = Rcos(ϕ)cos(θ) y = Rcos(ϕ)sin(θ) (5.11) z = Rsin(ϕ) v$i - π ≤ θ ≤ π - π/2 ≤ ϕ ≤ π/2 Hình 5.21: Các tham s bi u di)n m,t c u B Ellipsoid Ellipsoid có th coi m t m r ng c a m,t c u v$i ba bán kính khác Rx, Ry, Rz (xem hình 5.22) Ph ng trình t#c c a m t ellipsoid có d ng: 2 x Rx Và ph + y Ry 2 + z Rz = (5.12) ng trình tham s c a ellipsoid theo hai góc ϕ θ có d ng: x = Rxcos(ϕ)cos(θ) y = Rycos(ϕ)sin(θ) (5.13) z = Rzsin(ϕ) v$i - π ≤ θ ≤ π - π/2 ≤ ϕ ≤ π/2 Hình 5.22: Ellipsoid v$i bán kính Rx, Ry, Rz 89 Ch ng Các phép bi n i h a 3D Các phép bi n i h a ba chi u s m r ng c a phép bi n i h a hai chi u b ng cách thêm vào vi c xem xét t a th ba, t a z Bây gi , s& t nh ti n m t i t ng thông qua vi c mô t m t vector d i c a v t theo ba chi u không t nh ti n ba chi u Vector xác nh gian T ng t nh v y, ta có th thu phóng i t ng v$i t+ l bi n i theo c ba chi u S m r ng c a phép quay hi n nhiên h n hai phép bi n i c s Khi kh o sát phép quay m,t ph'ng hai chi u Oxy, ta ch+ c n kh o sát phép quay quanh m t tâm, hay nói cách khác, phép quay quanh m t tr c vng góc v$i m,t ph'ng Oxy Trong khơng gian ba chi u, ta có th ch n m t tr c quay có ph ng b t kì Ph n l$n h h a x! lí phép quay không x, gian ba chi u nh t h p c a ba phép quay v$i tr c quay tr c t a y z Nh v y, ng i dùng có th d) dàng xây d ng m t phép quay b t kì b ng cách mơ t tr c quay góc quay h a hai chi u, ch ng C/ng nh trình bày phép bi n i này, ta s& kh o sát phép bi n i h a ba chi u d $i d ng ma tr n M t chu0i b t kì phép bi n i s& c bi u di)n b ng m t ma tr n nh t tích c a ma tr n t ng ng v$i phép bi n i thành ph n 6.1 Các phép bi n i hình h c Hình 6.1: M t c nh ba chi u c t o nh phép bi n i Phép t nh ti n, quay, bi n i t+ l , phép bi n d ng ví d c a phép bi n i hình h c Chúng cịn c bi t t$i nh phép bi n i affine c s Trong s ó, phép quay có th nói quan tr ng h u d ng nh t cho phép nhìn i t ng theo h $ng khác nhau, i u cho phép c m nh n hình v& ba chi u tr c quan h n, d) ch u h n 90 Ta có th t o nhi u phiên b n c a m t i t ng b ng cách v& i t ng sau áp d ng m t dãy phép bi n i hình h c lên (xem hình 6.1) 6.1.1 M t s khái ni m liên quan A Phép bi n i Affine Phép bi n i affine phép bi n i n tính, kh ngh ch Phép bi n i b o tồn tính song song c a ng th'ng c/ng nh b o tồn tính t+ l v kho ng cách c a o n th'ng Tuy nhiên, phép bi n i không b o tồn góc nghiêng chi u dài o n th'ng Các phép bi n i c/ng b o toàn t+ l v kho ng cách (xem thêm ch ng 3) B Các h tr c t a theo quy c bàn tay ph i bàn tay trái theo quy $c bàn tay ph i (a) Hình 6.2: Các h t a quy $c bàn tay trái (b) H t a Descartes ba chi u có th nh ngh-a theo quy $c bàn tay trái ho,c bàn tay ph i (xem hình 6.2) • H t a theo quy $c bàn tay ph i h t a v$i tr c x, y, z th"a i u ki n: N u bàn tay ph i cho ngón h $ng chi u v$i tr c z, n#m tay l i, chi u ngón tay chuy n ng theo h $ng t tr c x n tr c y • H t a theo quy $c bàn tay trái h t a v$i tr c x, y, z th"a i u ki n: N u bàn tay trái cho ngón h $ng chi u v$i tr c z, n#m tay l i, chi u ngón tay chuy n ng theo h $ng t tr c x n tr c y C H t a thu n nh%t Trong h t a thu n nh t, m0i i m (x, y, z) không gian Descartes c bi u di)n b i m t b b n t a không gian chi u thu g n (h.x, h.y, h.z, h) ti n l i, ng i ta th ng ch n h = Nh v y, m t i m (x, y, z) h t a Descartes s& bi n thành i m (x, y, z, 1) h t a thu n nh t; i m (x, y, z, w) h t a thu n nh t (v$i w ≠ 0) s& t ng ng v$i i m (x/w, y/w, z/w) h t a Descartes (xem hình 6.3) 91 Hình 6.3: Các i m h t a thu n nh t Descartes D D*ng ma tr n c a phép bi n i affine h t a thu n nh%t Hình 6.4: D ng t ng quát c a phép bi n i affine ba chi u Phép bi n i affine ba chi u bi n i m P thành i m Q có d ng : Q = P.M, ó Q(Qx, Qy, Qz, 1), P(Px, Py, Pz, 1) M ma tr n bi n i 4x4 h thu n nh t Trong hình 6.4 tr=(trx, try, try) vector t nh ti n t a M t s tính ch t c a phép bi n i ba chi u : • Tính ch t ng th'ng c b o toàn Ngh-a là, m t ng th'ng không gian ba chi u bi n i s& thành m t ng th'ng • Tính song song c b o toàn Ngh-a là, hai ng th'ng song song bi n i c/ng s& thành hai ng th'ng song song • Tính t+ l v kho ng cách c b o toàn Ngh-a là, nh c a m t i m P chia o n th'ng AB theo t+ l f, s& chia o n th'ng A’B’ theo t+ l f, v$i A’B’ nh c a o n th'ng AB 6.1.2 Phép t nh ti n Hình 6.5: Phép t nh ti n v$i vector t nh ti n tr=(trx, try, trz) 92 Vector t nh ti n tr phép bi n i ba chi u có m t tác ng r t tr c quan: m0i i m c d ch i m t kho ng trx, try, trz theo ba tr c Ma tr n M cho phép t nh ti n có d ng nh sau: tr(trx, try, trz)= 0 0 0 0 tr tr tr x y (6.1) z 6.1.3 Phép t l Phép bi n i t+ l ba chi u m t s m r ng c a phép bi n hai chi u : ∂ S(∂x, ∂y, ∂z) = 0 x ∂ 0 y 0 ∂ 0 z i t+ l (6.2) Trong ó h ng s ∂x, ∂y, ∂z h s t+ l t ng ng theo tr c x, y, z Hình 6.6: Phép bi n i t+ l Nh hình 6.6, i t ng c phóng to g p ôi, ng th i v$i tác ng c a phép bi n i làm cho i t ng b %y xa g c t a h n Khi h s t+ l ∂x, ∂y, ∂z b ng nhau, ta có phép bi n i ng d ng Trong phép bi n i S(∂x, ∂y, ∂z) , g c t a O s& có nh Ta g i i m b t ng (fixed point) c a S, hay g i O tâm c a phép g ct a bi n i T ng qt h n, ta có th mơ t m t phép bi n i t+ l theo m t tâm (xf, yf, zf) b t kì b ng m t dãy ba phép bi n i sau: • T nh ti n i m b t ng (xf, yf, zf) v g c t a • Th c hi n phép bi n i t+ l theo công th c (6.2) • T nh ti n ng c i m b t ng t g c t a tr v v trí ban u Nh v y, k t h p ba b $c bi n i ta có c ma tr n bi n i c a phép bi n i t+ l theo tâm (xf, yf, zf) v$i h s t+ l ∂x, ∂y, ∂z là: 93 ∂ x 0 0 ∂ (1 − ∂ x) x f (1 − ∂ y ) y Sf(∂x, ∂y, ∂z) = y ∂ f 0 (6.3) z (1 − ∂ z ) z f 6.1.4 Phép bi n d ng Bi n d ng theo b t kì tr c t a c/ng b nh h hai tr c l i Ma tr n c a phép bi n d ng nh sau: h h h Sh = yx xy h xz h h yz zx zy 0 1 ng b i t a ng v$i (6.4) Ta có m i quan h Qx v$i P: Qx = Px + hxyPy + hxzPz ây có th hi u hxy l ng mà t a y c a P tác ng lên t a x c a Q Hình 6.7: Phép bi n d ng theo tr c x: hxy = hxz = 1, h s khác b ng T ng t nh tr ng h p phép bi n i t+ l , phép bi n d ng Sh (6.4) c/ng có i m b t ng g c t a O Ta c/ng có th xây d ng phép bi n d ng v$i tâm bi n d ng t i m t i m (xf, yf, zf) b t kì Ma tr n bi n i c a phép bi n d ng v$i tâm t i (xf, yf, zf) là: h Sh = h h −y h −z h xy xz f xy f h h yx h −x h −z h f yx f zy yz xz zx yz − x f h zx − yh f zy (6.5) 6.1.5 Phép quay A Phép quay quanh m t tr c t a Khác v$i phép quay m,t ph'ng (không gian hai chi u) quanh m t i m b t kì, khong gian ba chi u ta có phép quay quanh m t tr c t a ây theo quy $c bàn tay ph i quy nh chi u quay d ng ta s! d ng h t a ng c chi u kim ng h Ta có ma tr n bi u di)n phép quay quanh tr c x, y, z m t góc q l n l t R(z, θ), R(y, θ), R(x, θ): • Quay quanh tr c z : 94 R(z, θ) = cos θ − sin θ sin θ cos θ 0 0 0 0 0 (6.6) Hình 6.8: Phép quay quanh tr c z • Quay quanh tr c y: R(y, θ) = cos θ 0 − sin θ sin θ 0 cos θ 0 0 (6.7) Hình 6.9: Phép quay quanh tr c y • Quay quanh tr c x : R(x, θ) = 0 cos θ − sin θ 0 sin θ 0 cos θ 0 (6.8) Nh n xét r ng giá tr n m dòng c t t ng ng v$i tr c x ma tr n R(x,θ) s& có giá tr ngo i tr giá tr n m ng chéo i u m b o cho t a x c a i m không b thay i qua phép bi n i Nh n xét c/ng t ng t cho tr ng h p ma tr n cịn l i 95 Hình 6.10: Phép quay quanh tr c x Ghi chú: Các nh ngh-a v chi u quay c dùng chung cho c h t a theo quy $c bàn tay ph i bàn tay trái C th chi u d ng c nh ngh-a nh sau: • Quay quanh tr c x: t! tr c d ng y n tr c d ng z • Quay quanh tr c y: t! tr c d ng z n tr c d ng x • Quay quanh tr c z: t! tr c d ng x n tr c d ng y Hình 6.11: Cách xác nh chi u quay d ng 96 B Phép quay quanh m t tr c b%t kì Gi s! tr c quay i qua hai i m P0, P1 ó v$i ph ng c bi u di)n b i vector n v k Quay i m (x, y, z) quanh tr c k theo m t góc θ s& bi n thành i m (x’, y’, z’) (xem hình 6.12) Hình 6.12: Phép quay quanh tr c k th c hi n phép quay quanh k m t góc θ , ta có th th c hi n m t chu0i thao tác sau: • T nh ti n tr c k v g c t a : tr(-P0) (thành tr c k') • Quay quanh tr c x m t góc α ,t tr c k' n m m,t ph'ng Oxz: rot(x,α) (thành tr c k") • Quay quanh tr c y góc β a tr c k" v tr c z: rot(y,-β) • Th c hi n phép quay quanh tr c z m t góc q : rot(z,θ) • Th c hi n chu0i phép bi n i ng c l i q trình Góc quay α c xác nh d a hình chi u c a k' lên m,t ph'ng yz Ta khơng c n tính α c th Thay vào ó ta tính sinα cosα m t cách tr c ti p T hình 6.12 ta có: k= PP PP 0 1 ,d= 2 y z k +k cosα= kz/d, sinα = ky/d T ng t , t hình 6.13 ta có: cosβ = d/1 = d, sinβ = k/1 =k Nh v y, phép quay quanh m t tr c P0P1 b t kì m t góc θ , rot(P0P1,θ), có th c phân rã thành chu0i bi n i c s sau: tr(-P0)rot(x,α)rot(y,-β) rot(z,θ)rot(y,β)rot(x,-α)tr(P0) 97 Hình 6.13: Tính góc β 6.1.6 K t h p phép bi n i Affine chi u k t h p phép bi n i affine ba chi u, c/ng th c hi n t ng t nh phép bi n i hai chi u b ng cách dùng h t a thu n nh t B ng cách c/ng có k t qu t ng t nh tr ng h p bi n i hai chi u N u M1 bi n i P thành Q M2 bi n i Q thành S M1.M2 s& bi n i P thành S, ó ma tr n k t h p c a nhi u phép bi n i có th c tính t vi c nhân ma tr n c a phép bi n i thành ph n 6.2 Phép bi n i mơ hình phép bi n i h tr c t a Cho n th i i m này, ã kh o sát phép bi n i ba chi u nh thao tác d ch chuy n m t i m (m t i t ng) t v trí sang v trí khác m t h tr c t a Tuy nhiên, nhi u khi, ta c n xem xét i t ng h t a khác nhau, mu n chuy n t m t h t a sang h t a khác Ví d , quy trình hi n th i t ng ba chi u, ta c n ,t m t i t ng vào h t a chung cho t t c i t ng c nh (h t a th gi$i th c), sau ó, xác nh tia nhìn, ta chuy n i t h t a th gi$i th c sang h t a quan sát, cu i ta ph i chuy n t h t a quan sát sang thi t b , n i i t ng s& c hi n th h t a Khi mơ hình hóa i t ng, ta th ng mô t chúng m t h t a c c b , thu n ti n nh t cho vi c mơ hình hóa Sau ó, b ng phép bi n i ta s& ,t chúng vào c nh c n hi n th Cách ti p c n cho phép ta không c n mơ hình hóa q nhi u i t ng mà ch+ mơ hình hóa theo ch ng lo i i t ng Ví t o c nh hình 6.1 ta ch+ c n mơ hình hóa m t trái banh, m t ki, d bàn, … Sau ó phát sinh nhi u ki nh th y hình v& M t ví d khác có th xem hình 6.14 Vi c chuy n i mô t i t ng t h t a sang h t a khác th c hi n theo quy trình t ng t nh h a hai chi u Ta c n xây d ng ma tr n bi n i kh$p c tr c t a c a hai h Tr $c tiên, ta c n th c hi n phép t nh ti n hai g c t a trùng Sau ó, ta ph i th c hi n ti p m t dãy phép quay kh$p tr c t a t ng ng lên N u h t a s! d ng t+ l o l ng khác nhau, ta ph i th c hi n thêm m t phép bi n i t+ l n a ng nh t h t a 98 Hình 6.14: Mơ hình hóa phép bi n i h t a N uh t a th hai có g c t a ,t t i (x0, y0, z0) vector c s c mô t nh hình 6.15 (t ng ng h t a th nh t), tr $c tiên ta c n th c hi n phép t nh ti n T(-x0,-y0,-z0) Sau ó ta xây d ng ma tr n quay R d a vector c s Ma tr n s& bi n i vector n v u’x, u’y, u’z t ng ng thành tr c x, y, z R= u' u' u' u' u' u' u' u' u' x1 y1 z1 x2 y2 z2 x3 y3 z3 0 (6.9) Ma tr n c a phép bi n i h t a tích T.R Ma tr n bi n i h t a Descartes thành h t a Descartes khác, cho dù chúng h t a theo quy $c bàn tay ph i hay bàn tay trái Hình 6.15: Chuy n ih t a 99 Tài li u tham kh o • Giáo trình h a máy tính (cho h t o t xa) V" H i Quân - #HQG TP HCM • Giáo trình K thu t h a máy tính Lê T n Hùng & Hu$nh Quy t Th ng - #HBK HN • Giáo trình C s& h a Máy Tính Hồng Ki m, V" H i Qn - NXB Giáo d c, 2000 • Bài gi ng mơn h c h a máy tính Cao Quy t Th ng - Khoa CNTT - #H Hàng H i • Computer Graphics Donald Hearn & M.Pauline Baker; Prentice-Hall, New Jersey, 1986 • Introduction to Computer Graphics James D.Foley, Andries Van Dam; Addision Wesley, NewYork, 1995 100 ... S2 2 d1 = (y ) - y = (y ) - (R - (x + 1) ) i i i 2 d2 = y - (y - 1) = (R - (x + 1) ) - (y - 1) i i P = d1 - d2 i Tính P P i+1 i+1 -P i i 2 = P + 4x + + 2((y ) - (y ) ) - 2(y i i - N u P < : ch... (d - d ) i Ta có : d - d = y 2 i+1 - 2y - i = 2m(x +1) + 2b - 2y - i i P = 5x (d - d ) = 5x[2m(x +1) + 2b - 2y - 1] i i i = 5x[2(5y/5x)(x +1) + 2b - 2y - 1] i i = 25y(x +1) - 25x.y + 5x(2b - 1)... (y i+1 2 2 - 1/2) - R ] - [(x +1) + (y - 1/2) - R ] = i i 2x + + ((yi+1)2 + (yi)2) - (yi+1 - yi) i V y: - N u P < : ch n y i - P >= : ch n y i i+1 i+1 = y Khi ó P i = y - Khi ó P - Pi ng v$i

Ngày đăng: 17/02/2022, 08:52

TỪ KHÓA LIÊN QUAN