H Ọ C VI Ệ N CÔNG NGH Ệ B Ư U CHÍNH VI Ễ N THÔNG K Ỹ THU Ậ T ĐỒ H Ọ A (Dùng cho sinh viên h ệ đ ào t ạ o đạ i h ọ c t ừ xa) L ư u hành n ộ i b ộ HÀ N Ộ I - 2006 CuuDuongThanCong com https://fb com/tailieudientucntt H Ọ C VI Ệ N CÔNG NGH Ệ B Ư U CHÍNH VI Ễ N THÔNG K Ỹ THU Ậ T ĐỒ H Ọ A Biên so ạ n : THS TR Ị NH TH Ị VÂN ANH CuuDuongThanCong com https://fb com/tailieudientucntt L ờ i nói đầ u 3 L Ờ I NÓI ĐẦ U Hi ệ n nay đồ ho ạ máy tính (Computer Graphics) là m ộ t trong nh ữ ng ch ươ ng trình thông d ụ ng nh ấ t, nó đ ã góp ph ầ n quan tr ọ ng làm cho giao ti ế p gi ữ a con ng ườ i và máy tính tr ở nên thân thi ệ n h ơ n Th ậ t v ậ y, giao di ệ n ki ể u v ă n b ả n (text) đ ã đượ c thay th ế hoàn toàn b ằ ng giao di ệ n đồ ho ạ , cùng v ớ i công ngh ệ đ a ph ươ ng ti ệ n (multimedia) đ ã đư a ngành Công Ngh ệ Thông Tin sang m ộ t phiên b ả n m ớ i Cu ố n tài li ệ u gi ả ng d ạ y này, tôi mu ố n mang l ạ i cho b ạ n đọ c các c ơ s ở lý thuy ế t v ề đồ ho ạ máy tính t ừ đơ n gi ả n nh ấ t nh ư các thu ậ t toán v ẽ đườ ng th ẳ ng, đườ ng tròn, đ a giác, ký t ự Ti ế p đế n các k ỹ thu ậ t xén t ỉ a, các phép bi ế n đổ i đồ ho ạ trong không gian 2D và 3D Chúng ta l ầ n l ượ t làm quen v ớ i th ế gi ớ i màu s ắ c thông qua các h ệ màu: RGB, CMYK, HSV Ph ứ c t ạ p h ơ n n ữ a là các phép chi ế u, các ph ươ ng pháp xây d ự ng đườ ng cong và m ặ t cong cho đố i t ượ ng Tài li ệ u g ồ m b ả y ch ươ ng, trong đ ó ch ươ ng m ộ t giúp b ạ n có cái nhìn t ổ ng quan v ề k ỹ thu ậ t đồ ho ạ t ừ tr ướ c đế n gi ờ cùng đị nh h ướ ng t ươ ng lai cho l ĩ nh v ự c này Các ch ươ ng ti ế p theo, m ỗ i ch ươ ng s ẽ là m ộ t v ấ n đề t ừ đơ n gi ả n đế n ph ứ c t ạ p Cu ố i m ỗ i ch ươ ng đề u có ph ầ n bài t ậ p cho chúng ta ki ể m tra l ạ i ki ế n th ứ c v ừ a đọ c đượ c Bài t ậ p g ồ m hai d ạ ng: d ạ ng tính toán và d ạ ng l ậ p trình, đố i v ớ i d ạ ng l ậ p trình b ạ n có th ể vi ế t b ằ ng C/C++ hay BC th ậ m chí b ằ ng VB đề u đượ c Cu ố i cùng là ph ầ n ph ụ l ụ c g ồ m các h ướ ng d ẫ n để chúng ta làm bài t ậ p l ậ p trình, ngôn ng ữ hay dùng ở đ ây là C/C++ hay BC B ố c ụ c rõ ràng, hình ả nh phong phú, đ a d ạ ng Dù cho b ạ n ch ư a t ừ ng bi ế t v ề đồ ho ạ máy tính hay b ạ n đ ã nhi ề u n ă m làm vi ệ c trong l ĩ nh v ự c này, b ạ n đề u có th ể nh ậ n th ấ y r ằ ng cu ố n sách này là m ộ t b ộ tham kh ả o đầ y đủ các thông tin h ữ u ích và có tính ch ấ t th ự c ti ễ n cao Trong quá trình biên so ạ n m ặ c dù đ ã c ố g ắ ng h ế t s ứ c nh ư ng v ẫ n không tránh kh ỏ i nh ữ ng sai sót, r ấ t mong nh ậ n đượ c s ự đ óng góp chân thành t ừ quý b ạ n đọ c Xin chân thành cám ơ n Tác gi ả CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 4 CH ƯƠ NG 1: T Ổ NG QUAN V Ề K Ỹ THU Ậ T ĐỒ HO Ạ 1 CÁC KHÁI NI Ệ M T Ổ NG QUAN C Ủ A K Ỹ THU Ậ T ĐỒ HO Ạ MÁY TÍNH (COMPUTER GRAPHICS) 1 1 L ị ch s ử phát tri ể n - Graphics nh ữ ng n ă m 1950-1960 1959 Thi ế t b ị đồ ho ạ đầ u tiên là màn hình xu ấ t hi ệ n t ạ i Đứ c 1960 - SAGE (Semi-Automatic Ground Environment System) xu ấ t hi ệ n bút sáng thao tác v ớ i màn hình 1960 William Fetter nhà khoa h ọ c ng ườ i M ỹ , ông đ ang nghiên c ứ u xây d ự ng mô hình bu ồ ng lái máy bay cho hãng Boeing c ủ a M ỹ Ông đ ã d ự a trên hình ả nh 3 chi ề u c ủ a mô hình ng ườ i phi công trong bu ồ ng lái c ủ a máy bay để xây d ự ng nên m ộ t mô hình t ố i ư u cho bu ồ ng lái máy bay Ph ươ ng pháp này cho phép các nhà thi ế t k ế quan sát m ộ t cách tr ự c quan v ị trí c ủ a ng ườ i lái trong khoang Ông đặ t tên cho ph ươ ng pháp này là đồ ho ạ máy tính (Computer Graphics) Màn hình là thi ế t b ị thông d ụ ng nh ấ t trong h ệ đồ ho ạ , các thao tác c ủ a h ầ u h ế t các màn hình đề u d ự a trên thi ế t k ế ố ng tia âm c ự c CRT (Cathode ray tube) Khi đ ó giá để làm t ươ i màn hình là r ấ t cao, máy tính x ử lý ch ậ m, đắ t và không ch ắ c ch ắ n (không đ áng tin c ậ y) - Graphics: 1960-1970 1963 Ivan Sutherland (h ộ i ngh ị Fall Joint Computer - l ầ n đầ u tiên có kh ả n ă ng t ạ o m ớ i, hi ể n th ị và thay đổ i đượ c th ự c hi ệ n trong th ờ i gian th ự c trên màn CRT) H ệ th ố ng này đượ c dùng để thi ế t k ế m ạ ch đ i ệ n: CRT, LightPen (bút sáng), computer (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 màn hình thông qua bút sáng - Graphics: 1970-1980 Raster Graphics ( đồ ho ạ đ i ể m) B ắ t đầ u chu ẩ n đồ ho ạ ví d ụ nh ư : GKS(Graphics Kernel System): European effort (k ế t qu ả c ủ a châu âu), Becomes ISO 2D standard - Graphics: 1980-1990 M ụ c đ ích đặ c bi ệ t v ề ph ầ n c ứ ng, thi ế t b ị hình h ọ c đồ ho ạ Silicon Xu ấ t hi ệ n các chu ẩ n công nghi ệ p: PHIGS (Programmers Hierarchical Interactive Graphics Standard) xác đị nh các ph ươ ng pháp chu ẩ n cho các mô hình th ờ i gian th ự c và l ậ p trình h ướ ng đố i t ượ ng Giao di ệ n ng ườ i máy Human-Computer Interface (HCI) - Computer Graphics: 1990-2000 OpenGL API (Application Program Interface – giao di ệ n ch ươ ng trình ứ ng d ụ ng) Completely computer-sinh ra ngành đ i ệ n ả nh phim truy ệ n (Toy Story) r ấ t thành công Các ti ề m tàng ph ầ n c ứ ng m ớ i: Texture mapping (dán các ả nh c ủ a c ả nh th ậ t lên b ề m ặ t c ủ a đố i t ượ ng),blending (tr ộ n màu)… - Computer Graphics: 2000- nay CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 5 Ả nh hi ệ n th ự c các c ạ c đồ ho ạ cho máy tính (Graphics cards for PCs), game boxes and game players Công nghi ệ p phim ả nh nh ờ vào đồ ho ạ máy tính (Computer graphics becoming routine in movie industry): Maya (th ế gi ớ i v ậ t ch ấ t tri giác đượ c)… 1 2 K ỹ thu ậ t đồ h ọ a vi tính Definition (ISO): Ph ươ ng pháp và công ngh ệ chuy ể n đổ i d ữ li ệ u t ừ thi ế t b ị đồ ho ạ sang máy tính Computer Graphics là ph ươ ng ti ệ n đ a n ă ng và m ạ nh nh ấ t c ủ a giao ti ế p gi ữ a con ng ườ i và máy tính Computer Graphics (K ỹ thu ậ t đồ ho ạ máy tính) là m ộ t l ĩ nh v ự c c ủ a Công ngh ệ thông tin mà ở đ ó nghiên c ứ u, xây d ự ng và t ậ p h ợ p các công c ụ (mô hình lý thuy ế t và ph ầ n m ề m) khác nhau để : ki ế n t ạ o, xây d ự ng, l ư u tr ữ , x ử lý Các mô hình (model) và hình ả nh (image) c ủ a đố i t ượ ng Các mô hình (model) và hình ả nh này có th ể là k ế t qu ả thu đượ c t ừ nh ữ ng l ĩ nh v ự c khác nhau c ủ a r ấ t nhi ề u ngành khoa h ọ c (v ậ t lý, toán h ọ c, thiên v ă n h ọ c…) Computer graphics x ử lý t ấ t c ả các v ấ n đề t ạ o ả nh nh ờ máy tính 2 CÁC K Ỹ THU Ậ T ĐỒ HO Ạ 2 1 K ỹ thu ậ t đồ ho ạ đ i ể m (Sample based-Graphics) - Các mô hình, hình ả nh c ủ a các đố i t ượ ng đượ c hi ể n th ị thông qua t ừ ng pixel (t ừ ng m ẫ u r ờ i r ạ c) - Đặ c đ i ể m: Có th ể thay đổ i thu ộ c tính + Xoá đ i t ừ ng pixel c ủ a mô hình và hình ả nh các đố i t ượ ng + Các mô hình hình ả nh đượ c hi ể n th ị nh ư m ộ t l ướ i đ i ể m (grid) các pixel r ờ i r ạ c, + T ừ ng pixel đề u có v ị trí xác đị nh, đượ c hi ể n th ị v ớ i m ộ t giá tr ị r ờ i r ạ c (s ố nguyên) các thông s ố hi ể n th ị (màu s ắ c ho ặ c độ sáng) + T ậ p h ợ p t ấ t c ả các pixel c ủ a grid cho chúng ta mô hình, hình ả nh đố i t ượ ng mà chúng ta mu ố n hi ể n th ị Hình 1 1 Ả nh đồ ho ạ đ i ể m CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 6 Bitmap Hình 1 2 K ỹ thu ậ t đồ ho ạ đ i ể m Ph ươ ng pháp để t ạ o ra các pixel - Ph ươ ng pháp dùng ph ầ n m ề m để v ẽ tr ự c ti ế p t ừ ng pixel m ộ t - D ự a trên các lý thuy ế t mô ph ỏ ng (lý thuy ế t Fractal, v v) để xây d ự ng nên hình ả nh mô ph ỏ ng c ủ a s ự v ậ t - Ph ươ ng pháp r ờ i r ạ c hoá (s ố hoá) hình ả nh th ự c c ủ a đố i t ượ ng - Có th ể s ử a đổ i (image editing) ho ặ c x ử lý (image processing) m ả ng các pixel thu đượ c theo nh ữ ng ph ươ ng pháp khác nhau để thu đượ c hình ả nh đặ c tr ư ng c ủ a đố i t ượ ng 2 2 K ỹ thu ậ t đồ ho ạ vector Hình 1 3 Mô hình đồ ho ạ vector - Mô hình hình h ọ c (geometrical model) cho mô hình ho ặ c hình ả nh c ủ a đố i t ượ ng - Xác đị nh các thu ộ c tính c ủ a mô hình hình h ọ c này, SRP library Pascal C program X Window System Graphics hardware Image image formats, compression, transfer graphics algorithms colour positions Mô hình đồ h ọ a Tô trát Thi ế t b ị ra Các tham s ố tô trát CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 7 - Quá trình tô trát (rendering) để hi ể n th ị t ừ ng đ i ể m c ủ a mô hình, hình ả nh th ự c c ủ a đố i t ượ ng Có th ể đị nh ngh ĩ a đồ ho ạ vector: Đồ ho ạ vector = geometrical model + rendering So sánh gi ữ a Raster và Vector Graphics Đồ ho ạ đ i ể m(Raster Graphics) - Hình ả nh và mô hình c ủ a các v ậ t th ể đượ c bi ể u di ễ n b ở i t ậ p h ợ p các đ i ể m c ủ a l ướ i (grid) - Thay đổ i thu ộ c tính c ủ a các pixel => thay đổ i t ừ ng ph ầ n và t ừ ng vùng c ủ a hình ả nh - Copy đượ c các pixel t ừ m ộ t hình ả nh này sang hình ả nh khác Đồ ho ạ vector(Vector Graphics) - Không thay đổ i thu ộ c tính c ủ a t ừ ng đ i ể m tr ự c ti ế p - X ử lý v ớ i t ừ ng thành ph ầ n hình h ọ c c ơ s ở c ủ a nó và th ự c hi ệ n quá trình tô trát và hi ể n th ị l ạ i - Quan sát hình ả nh và mô hình c ủ a hình ả nh và s ự v ậ t ở nhi ề u góc độ khác nhau b ằ ng cách thay đổ i đ i ể m nhìn và góc nhìn Ví d ụ v ề hình ả nh đồ ho ạ Vector Hình 1 4 Ví d ụ v ề đồ ho ạ vector Muscle Model Wireframe Skeletal Skin Hair Render and Touch CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 8 2 3 Phân lo ạ i c ủ a đồ ho ạ máy tính Phân lo ạ i theo các l ĩ nh v ự c c ủ a đồ ho ạ máy tính Phân lo ạ i theo h ệ to ạ độ - K ỹ thu ậ t đồ ho ạ hai chi ề u : là k ỹ thu ậ t đồ ho ạ máy tính s ử d ụ ng h ệ to ạ độ hai chi ề u (h ệ to ạ độ ph ẳ ng), s ử d ụ ng r ấ t nhi ề u trong k ỹ thu ậ t x ử lý b ả n đồ , đồ th ị - K ỹ thu ậ t đồ ho ạ ba chi ề u : là k ỹ thu ậ t đồ ho ạ máy tính s ử d ụ ng h ệ to ạ độ ba chi ề u, đ òi h ỏ i r ấ t nhi ề u tính toán và ph ứ c t ạ p h ơ n nhi ề u so v ớ i k ỹ thu ậ t đồ ho ạ hai chi ề u Các l ĩ nh v ự c c ủ a đồ ho ạ máy tính: - K ỹ thu ậ t x ử lý ả nh ( Computer Imaging ): sau quá trình x ử lý ả nh cho ta ả nh s ố c ủ a đố i t ượ ng Trong quá trình x ử lý ả nh s ử d ụ ng r ấ t nhi ề u các k ỹ thu ậ t ph ứ c t ạ p: k ỹ thu ậ t khôi ph ụ c ả nh, k ỹ thu ậ t làm n ổ i ả nh, k ỹ thu ậ t xác đị nh biên ả nh - K ỹ thu ậ t nh ậ n d ạ ng ( Pattern Recognition): t ừ nh ữ ng ả nh m ẫ u có s ẵ n ta phân lo ạ i theo c ấ u trúc, ho ặ c theo các tiêu trí đượ c xác đị nh t ừ tr ướ c và b ằ ng các thu ậ t toán ch ọ n l ọ c để có th ể phân tích hay t ổ ng h ợ p ả nh đ ã cho thành m ộ t t ậ p h ợ p các ả nh g ố c, các ả nh g ố c này đượ c l ư u trong m ộ t th ư vi ệ n và c ă n c ứ vào th ư vi ệ n này ta xây d ự ng đượ c các thu ậ t gi ả i phân tích và t ổ h ợ p ả nh - K ỹ thu ậ t t ổ ng h ợ p ả nh ( Image Synthesis ): là l ĩ nh v ự c xây d ự ng mô hình và hình ả nh c ủ a các v ậ t th ể d ự a trên các đố i t ượ ng và m ố i quan h ệ gi ữ a chúng - Các h ệ CAD/CAM (Computer Aided Design/Computer Aided Manufacture System): k ỹ thu ậ t đồ ho ạ t ậ p h ợ p các công c ụ , các k ỹ thu ậ t tr ợ giúp cho thi ế t k ế các chi ti ế t và các h ệ th ố ng khác nhau: h ệ th ố ng c ơ , h ệ th ố ng đ i ệ n, h ệ th ố ng đ i ệ n t ử … - Đồ ho ạ minh ho ạ (Presentation Graphics): g ồ m các công c ụ giúp hi ể n th ị các s ố li ệ u thí nghi ệ m m ộ t cách tr ự c quan, d ự a trên các m ẫ u đồ th ị ho ặ c các thu ậ t toán có s ẵ n K ỹ thu ậ t phân tích và t ạ o ả nh Đồ ho ạ ho ạ t hình và ngh ệ thu ậ t K ỹ thu ậ t nh ậ n d ạ ng X ử lý ả nh Đồ ho ạ minh ho ạ CAD/CAM System K ỹ thu ậ t đồ ho ạ Ki ế n t ạ o đồ ho ạ X ử lý đồ ho ạ K ỹ thu ậ t đồ ho ạ K ỹ thu ậ t đồ ho ạ 2 chi ề u K ỹ thu ậ t đồ ho ạ 3 chi ề u CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 9 - Đồ ho ạ ho ạ t hình và ngh ệ thu ậ t: bao g ồ m các công c ụ giúp cho các ho ạ s ĩ , các nhà thi ế t k ế phim ho ạ t hình chuyên nghi ệ p làm các k ỹ x ả o ho ạ t hình, v ẽ tranh Ví d ụ : ph ầ n m ề m 3D Studio, 3D Animation, 3D Studio Max 2 4 Các ứ ng d ụ ng tiêu bi ể u c ủ a k ỹ thu ậ t đồ h ọ a Đồ ho ạ máy tính là m ộ t trong nh ữ ng l ĩ nh v ự c lý thú nh ấ t và phát tri ể n nhanh nh ấ t c ủ a tin h ọ c Ngay t ừ khi xu ấ t hi ệ n nó đ ã có s ứ c lôi cu ố n mãnh li ệ t, cu ố n hút r ấ t nhi ề u ng ườ i ở nhi ề u l ĩ nh v ự c khác nhau nh ư khoa h ọ c, ngh ệ thu ậ t, kinh doanh, qu ả n lý Tính h ấ p d ẫ n c ủ a nó có th ể đượ c minh ho ạ r ấ t tr ự c quan thông qua các ứ ng d ụ ng c ủ a nó - Xây d ự ng giao di ệ n ng ườ i dùng (User Interface) Giao di ệ n đồ ho ạ th ự c s ự là cu ộ c cách m ạ ng mang l ạ i s ự thu ậ n ti ệ n và tho ả i mái cho ng ườ i dùng ứ ng d ụ ng Giao di ệ n WYSIWYG và WIMP đ ang đượ c đ a s ố ng ườ i dùng ư u thích nh ờ tính thân thi ệ n, d ễ s ử d ụ ng c ủ a nó - T ạ o các bi ể u đồ trong th ươ ng m ạ i, khoa h ọ c, k ỹ thu ậ t Các ứ ng d ụ ng này th ườ ng đượ c dùng để tóm l ượ c các d ữ li ệ u v ề tài chính, th ố ng kê, kinh t ế , khoa h ọ c, toán h ọ c giúp cho nghiên c ứ u, qu ả n lý m ộ t cách có hi ệ u qu ả - T ự độ ng hoá v ă n phòng và ch ế b ả n đ i ệ n t ử - Thi ế t k ế v ớ i s ự tr ợ giúp c ủ a máy tính (CAD_CAM) - L ĩ nh v ự c gi ả i trí, ngh ệ thu ậ t và mô ph ỏ ng - Đ i ề u khi ể n các quá trình s ả n xu ấ t (Process Control) - L ĩ nh v ự c b ả n đồ (Cartography) - Giáo d ụ c và đ ào t ạ o M ộ t s ố ví d ụ c ủ a ứ ng d ụ ng k ỹ thu ậ t đồ ho ạ : CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 10 Hình 1 5 Các ứ ng d ụ ng c ủ a k ỹ thu ậ t đồ ho ạ Hình 1 6 H ệ ứ ng d ụ ng CAD - CAM CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 11 2 5 Các chu ẩ n giao di ệ n c ủ a h ệ đồ ho ạ M ụ c tiêu c ă n b ả n c ủ a ph ầ n m ề m đồ ho ạ đượ c chu ẩ n là tính t ươ ng thích Khi các công c ụ đượ c thi ế t k ế v ớ i hàm đồ ho ạ chu ẩ n, ph ầ n m ề m có th ể đượ c di chuy ể n m ộ t cách d ễ dàng t ừ h ệ ph ầ n c ứ ng này sang h ệ ph ầ n c ứ ng khác và đượ c dùng trong nhi ề u cài đặ t và ứ ng d ụ ng khác nhau GKS (Graphics Kernel System): chu ẩ n xác đị nh các hàm đồ ho ạ chu ẩ n, đượ c thi ế t k ế nh ư m ộ t t ậ p h ợ p các công c ụ đồ ho ạ hai chi ề u và ba chi ề u GKS Functional Description, ANSI X3 124 - 1985 GKS - 3D Functional Description, ISO Doc #8805:1988 CGI (Computer Graphics Interface System): h ệ chu ẩ n cho các ph ươ ng pháp giao ti ế p v ớ i các thi ế t b ị ngo ạ i vi CGM (Computer Graphics Metafile): xác đị nh các chu ẩ n cho vi ệ c l ư u tr ữ và chuy ể n đổ i hình ả nh VRML (Virtual Reality Modeling Language): ngôn ng ữ th ự c t ạ i ả o, m ộ t h ướ ng phát tri ể n trong công ngh ệ hi ể n th ị đượ c đề xu ấ t b ở i hãng Silicon Graphics, sau đ ó đ ã đượ c chu ẩ n hóa nh ư m ộ t chu ẩ n công nghi ệ p PHIGS (Programmers Hierarchical Interactive Graphics Standard): xác đị nh các ph ươ ng pháp chu ẩ n cho các mô hình th ờ i gian th ự c và l ậ p trình h ướ ng đố i t ượ ng PHIGS Functional Description, ANSI X3 144 - 1985 + Functional Description, 1988, 1992 OPENGL th ư vi ệ n đồ h ọ a c ủ a hãng Silicon Graphics, đượ c xây d ự ng theo đ úng chu ẩ n c ủ a m ộ t h ệ đồ h ọ a n ă m 1993 DIRECTX th ư vi ệ n đồ ho ạ c ủ a hãng Microsoft, Direct X/Direct3D 1997 3 PH Ầ N C Ứ NG ĐỒ HO Ạ (GRAPHICS HARDWARE) 3 1 Các thành ph ầ n ph ầ n c ứ ng c ủ a h ệ đồ ho ạ t ươ ng tác CPU:th ự c hi ệ n các ch ươ ng trình ứ ng d ụ ng B ộ x ử lý hi ể n th ị (Display Processor): th ự c hi ệ n công vi ệ c hi ể n th ị d ữ li ệ u đồ ho ạ B ộ nh ớ h ệ th ố ng (System Memory): ch ứ a các ch ươ ng trình và d ữ li ệ u đ ang th ự c hi ệ n Gói ph ầ n m ề m đồ ho ạ (Graphics Package): cung c ấ p các hàm đồ ho ạ cho ch ươ ng trình ứ ng d ụ ng Ph ầ n m ề m ứ ng d ụ ng (Application Program): ph ầ n m ề m đồ ho ạ ứ ng d ụ ng B ộ đệ m ( Frame buffer): có nhi ệ m v ụ ch ứ a các hình ả nh hi ể n th ị B ộ đ i ề u khi ể n màn hình (Video Controller): đ i ề u khi ể n màn hình, chuy ể n d ữ li ệ u d ạ ng s ố ở frame buffer thành các đ i ể m sáng trên màn hình CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 12 Hình 1 7 Các thành ph ầ n c ứ ng c ủ a h ệ đồ ho ạ t ươ ng tác 3 2 Máy in Dot size: đườ ng kính c ủ a m ộ t đ i ể m in bé nh ấ t mà máy in có th ể in đượ c Addressability: kh ả n ă ng đị a ch ỉ hoá các đ i ể m in có th ể có trên m ộ t đơ n v ị độ dài (dot per inch) S ố l ượ ng màu có th ể v ẽ trên m ộ t đ i ể m: Dot size Point per inch 8 - 20/ 100inch 200, 600 5/1000inch 1500 Máy v ẽ 6,15/1000 inch 1000, 2000 3 3 Màn hình CRT M ộ t chùm các tia đ i ệ n t ử (tia âm c ự c) phát ra t ừ m ộ t súng đ i ệ n t ử , v ượ t qua cu ộ n lái tia d ẫ n đế n v ị trí xác đị nh trên màn hình đượ c ph ủ m ộ t l ớ p phosphor T ạ i m ỗ i v ị trí t ươ ng tác v ớ i tia đ i ệ n t ử h ạ t phosphor s ẽ phát lên m ộ t ch ấ m sáng nh ỏ Nh ư ng ch ấ m sáng s ẽ m ờ d ầ n r ấ t nhanh nên c ầ n có cách nào nó duy trì ả nh trên màn hình M ộ t trong các cách là: 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 các tia đ i ệ n t ử tr ở l ạ i ví trí c ũ G ọ i là làm t ươ i (refresh CRT) S ố l ượ ng t ố i đ a các đ i ể m có th ể hi ể n th ị trên m ộ t CRT đượ c g ọ i là độ phân gi ả i (Resolution) Hay độ phân gi ả i là s ố l ượ ng các đ i ể m trên m ộ t cm mà có th ể đượ c v ẽ theo chi ề u ngang và chi ề u d ọ c ( đượ c xem nh ư t ổ ng s ố đ i ể m theo m ỗ i h ướ ng) CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 13 Hình 1 8 Công ngh ệ màn hình CRT Kích th ướ c v ậ t lý c ủ a màn hình đồ ho ạ đượ c tính t ừ độ dài c ủ a đườ ng chéo màn hình Th ườ ng dao độ ng t ừ 12-27 inch, ho ặ c l ớ n h ơ n Thu ộ c tính khác c ủ a màn hình là t ỷ s ố ph ươ ng (aspect ratio) Nó là t ỷ l ệ c ủ a các đ i ể m d ọ c và các đ i ể m ngang c ầ n để phát sinh các đ o ạ n th ẳ ng có độ dài đơ n v ị theo c ả hai h ướ ng trên màn hình Màn hình có t ỷ s ố ph ươ ng khác m ộ t, thì hình vuông hi ể n th ị trên đ ó thành hình ch ữ nh ậ t còn hình tròn thành hình ellipse Màn hình d ạ ng đ i ể m (Raster Display): th ườ ng g ặ p nh ấ t trong s ố các d ạ ng màn hình s ử d ụ ng CRT trên công ngh ệ truy ề n hình M ỗ i đ i ể m trên màn hình đượ c g ọ i là pixel Các thông tin v ề ả nh hi ể n th ị trên màn hình đượ c l ư u tr ữ trong m ộ t vùng b ộ nh ớ g ọ i là vùng đệ m làm t ươ i (Refresh buffer) hay là vùng đệ m khung (Frame Buffer) Vùng l ư u tr ữ t ậ p các giá tr ị c ườ ng độ sáng c ủ a toàn b ộ các đ i ể m trên màn hình và luôn t ồ n t ạ i m ộ t cách song ánh gi ữ a m ỗ i đ i ể m trên màn hình và m ỗ i ph ầ n t ử trong vùng này SONY Trinitron NEC Hybrid Hitachi EDP Standard Dot-trio CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 14 Để t ạ o ra hình ả nh đ en tr ắ ng, đơ n gi ả n ch ỉ c ầ n l ư u thông tin c ủ a m ỗ i Pixel là m ộ t bít (0,1) (xem hình 1 9) Trong tr ườ ng h ợ p ả nh nhi ề u màu thì c ầ n nhi ề u bít h ơ n, n ế u thông tin m ỗ i pixel đượ c l ư u b ằ ng b bít thì ta có th ể có 2 b giá tr ị m ầ u phân bi ệ t cho pixel đ ó Trong các màn hình màu, ng ườ i ta đị nh ngh ĩ a t ậ p các màu làm vi ệ c trong m ộ t b ả ng tra (LookUp Table - LUT) M ỗ i ph ầ n t ử c ủ a LUT đượ c đị nh ngh ĩ a m ộ t b ộ ba giá tr ị (RGB) mô t ả m ộ t màu nào đ ó 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 đ ó trong LUT, s ố ph ầ n t ử trong b ả ng LUT chính là s ố màu có th ể đượ c hi ể n th ị cùng m ộ t lúc trên màn hình Ví d ụ mô hình đồ ho ạ đ i ể m ngôi nhà và ngôi sao Hình 1 9 Song ánh gi ữ a vùng đệ m khung và màn hình X: 0 ¸ Xmax2 màu/ 1 bit Y: 0 ¸ Ymax16 màu/ 4 bit ;256 màu/ 8bit 2 16 màu/ 16 bit ; 2 24 màu/ 24 bit 640 x 480 x 16 → Video RAM = 2MB 1024 x 1024 x 24 → Video RAM = 24MB Vi ệ c làm t ươ i trên màn hình d ạ ng này đượ c th ự c hi ệ n ở t ố c độ 60 - 80 frame/giây Đ ôi khi t ố c độ làm t ươ i còn đượ c bi ể u di ễ n b ằ ng đơ n v ị Hertz (Hz - s ố chu k ỳ trên/giây), trong đ ó m ộ t chu k ỳ t ươ ng ứ ng v ớ i m ộ t frame V ậ y t ố c độ làm t ươ i 60 frame/giây đơ n gi ả n là 60 Hz Khi đạ t đế n cu ố i m ỗ i dòng quét, tia đ i ệ n t ử quay tr ở l ạ i bên trái c ủ a màn hình để b ắ t đầ u dòng quét k ế ti ế p Vi ệ c quay tr ở v ề bên trái màn hình sau khi làm t ươ i m ỗ i dòng quét đượ c g ọ i là tia h ồ i ngang (Horizontal retrace) Và t ớ i cu ố i m ỗ i frame, tia đ i ệ n t ử (tia h ồ i d ọ c - Vertical retrace) quay tr ở l ạ i góc bên trái c ủ a màn hình để chu ẩ n b ị b ắ t đầ u frame k ế ti ế p Display processo Interface to host computer (Display commands) (interaction data) Keyboard Data input 000000000000000 000000000010000 00 000000000000000 Bitmap refresh buffer (the 1’s are accentuated for contrast) CRT CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 15 Hình 1 10 Quét mành và quét dòng c ủ a màn hình CRT Ví d ụ v ề vi ệ c tia quét trên màn hình CRT: MOVE 10,15 LINE 400,300 LINE 600,800 Refesh Buffer DrawLine(A, B): Turn beam off, move to A Turn beam on, move to B 3 4 Màn hình tinh th ể l ỏ ng (Liquid Crystal Display – LCD) D ự a vào công ngh ệ truy ề n ánh sáng qua đ i ệ n c ự c mà đặ t gi ữ a là cu ộ n dây xo ắ n Khi ch ư a có t ừ tr ườ ng (ch ư a có dòng đ i ệ n) ở cu ộ n dây thì ánh sáng truy ề n th ẳ ng, khi có t ừ tr ườ ng thì ánh sáng truy ề n đổ i chi ề u Hình 1 11 Công ngh ệ truy ề n ánh sáng trong màn hình tinh th ể l ỏ ng CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 16 CRT Displays (màn hình CRT) Advantages ( ư u đ i ể m) Đ áp ứ ng nhanh (có độ phân gi ả i cao) Màu s ắ c đ a d ạ ng (Có độ sâu và r ộ ng) Màu s ắ c bão hoà và t ự nhiên Công ngh ệ không quá đắ t và hoàn thi ệ n Góc nhìn r ộ ng, t ươ ng ph ả n và độ sáng cao Disadvantages (nh ượ c đ i ể m) L ớ n và n ặ ng (typ 70x70 cm, 15 kg) Tiêu t ố n ngu ồ n đ i ệ n cao (typ 140W) Có h ạ i cho s ứ c kho ẻ vì tr ườ ng đ i ệ n t ừ và t ừ tính Màn hình nh ấ p nháy (at 50-80 Hz) Hình hay b ị méo t ạ i 4 góc LCD Displays (màn hình tinh th ể l ỏ ng) Advantages ( ư u đ i ể m) Hình dáng nh ỏ , tr ọ ng l ượ ng nh ẹ (approx 1/6 of CRT, typ 1/5 of CRT) Tiêu t ố n ngu ồ n th ấ p (typ 1/4 of CRT) Màn hình ph ẳ ng tuy ệ t đố i nên không méo t ạ i các góc Màu s ắ c đề u, ả nh sinh độ ng Không b ị hi ệ u ứ ng đ i ệ n t ừ tr ườ ng Có th ể màn hình v ừ a l ớ n v ừ a r ộ ng (>20 inch) Disadvantages (nh ượ c đ i ể m) Giá thành cao (presently 3x CRT) Góc nhìn h ẹ p h ơ n (typ +/- 50 degrees) độ t ươ ng ph ả n th ấ p (typ 1:100) độ chói ( độ ng ờ i) th ấ p h ơ n (typ 200 cd/m 2 ) Tóm t ắ t ch ươ ng: S ự ra đờ i c ủ a đồ ho ạ máy tính th ự c s ự là cu ộ c cách m ạ ng trong giao ti ế p gi ữ a ng ườ i dùng và máy tính V ớ i l ượ ng thông tin tr ự c quan, đ a d ạ ng và phong phú đượ c truy ề n t ả i qua hình ả nh Các ứ ng d ụ ng đồ ho ạ máy tính đ ã lôi cu ố n nhi ề u ng ườ i nh ờ tính thân thi ệ n, d ễ dùng, kích thích kh ả n ă ng sáng t ạ o và t ă ng đ áng k ể hi ệ u su ấ t làm vi ệ c Đồ ho ạ máy tính ngày nay đượ c đượ c ứ ng d ụ ng r ấ t r ộ ng rãi trong nhi ề u l ĩ nh v ự c khao h ọ c, k ỹ thu ậ t, ngh ệ thu ậ t, kinh doanh, qu ả n lý…Các ứ ng d ụ ng đồ ho ạ r ấ t đ a d ạ ng, phong phú và phát tri ể n liên t ụ c không ng ừ ng Ngày nay, h ầ u nh ư không có ch ươ ng trình ứ ng d ụ ng nào mà không s ử d ụ ng k ỹ thu ậ t đồ ho ạ để làm t ă ng tính h ấ p d ẫ n cho mình M ộ t h ệ th ố ng đồ ho ạ bao gi ờ c ũ ng g ồ m hai ph ầ n chính đ ó là ph ầ n c ứ ng và ph ầ n m ề m Ph ầ n c ứ ng bao g ồ m các thi ế t b ị hi ể n th ị (thi ế t b ị xu ấ t) và các thi ế t b ị nh ậ p Tiêu bi ể u nh ấ t là màn hình, có hai lo ạ i thông d ụ ng là CRT và LCD Bài t ậ p: 1 C ấ u t ạ o và nguyên lý ho ạ t độ ng c ủ a màn hình d ạ ng đ i ể m Nêu các khái ni ệ m vùng đệ m khung, độ phân gi ả i, t ỷ s ố ph ươ ng c ủ a màn hình lo ạ i này? 2 Ý ngh ĩ a và ho ạ t độ ng c ủ a b ả ng tra LUT? CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 1: T ổ ng quan v ề k ỹ thu ậ t đồ h ọ a 17 3 Tính Video Ram c ủ a các màn hình l ầ n l ượ t có độ phân gi ả i là 640x480, 1024x768, 1280x1024 mà có m ỗ i pixel đượ c mô t ả là 8bít, 12 bit, 24 bit 4 N ế u chúng ta dùng các giá tr ị 12bit cho m ỗ i pixel trong m ộ t b ả ng tham chi ế u lookup table, có bao nhiêu h ạ ng m ụ c mà lookup table có đượ c? 5 T ạ i sao ph ả i chu ẩ n hoá các ph ầ n m ề m? Li ệ t kê và tìm hi ể u các chu ẩ n hó ph ầ n m ề m đồ ho ạ Bài t ậ p tr ắ c nghi ệ m: 1 T ỷ s ố ph ươ ng (aspect ratio) c ủ a màn hình là 1,4 v ậ y m ộ t hình tròn khi hi ể n th ị trên màn hình đ ó s ẽ cho: a Hình tròn b Hình ellipse n ằ m ngang (bán kính theo tr ụ c x dài h ơ n bán kính theo tr ụ c y) c Hình ellipse đứ ng (bán kính theo tr ụ c x ng ắ n h ơ n bán kính theo tr ụ c y) d Hình thoi 2 Cho màn có độ phân gi ả i 1024x1024 và m ỗ i pixel đượ c mô t ả 24bít v ậ y video RAM c ủ a màn hình là: a 1048576 bít b 2MB c 3MB d 4MB 3 N ế u ta dùng các giá tr ị 24 bit cho m ỗ i pixel trong m ộ t b ả ng LUT Thì b ả ng LUT có s ố màu là: a 24 màu b 1024 màu c 16777216 màu d 16000000 màu CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 2: Các gi ả i thu ậ t sinh th ự c th ể c ơ s ở 18 CH ƯƠ NG 2: CÁC GI Ả I THU Ậ T SINH TH Ự C TH Ể C Ơ S Ở 1 CÁC ĐỐ I T ƯỢ NG ĐỒ HO Ạ C Ơ S Ở 1 1 H ệ to ạ độ th ế gi ớ i th ự c và h ệ to ạ độ thi ế t b ị a H ệ to ạ độ th ế gi ớ i th ự c (WCS: World Coordinate System) WCS hay h ệ to ạ độ th ự c là h ệ to ạ độ đượ c dùng mô t ả các đố i t ượ ng trong th ế gi ớ i th ự c M ộ t trong h ệ to ạ độ th ự c đượ c dùng nhi ề u nh ấ t là h ệ to ạ độ Descartes B ấ t kì đ i ể m nào trong m ặ t ph ẳ ng đượ c mô t ả b ằ ng c ặ p to ạ độ (x,y) trong đ ó x,y ∈ R G ố c to ạ độ là đ i ể m O có to ạ độ (0,0), Ox,Oy l ầ n l ượ t là tr ụ c hoành và tr ụ c tung và x,y là hoành độ và tung độ Các to ạ độ th ế gi ớ i th ự c cho phép ng ườ i s ử d ụ ng b ấ t kì m ộ t th ứ nguyên (dimension) qui ướ c: foot, cm, nm, km, inch tu ỳ ý b H ệ to ạ độ thi ế t b ị (DCS: Device Coordinate System) H ệ to ạ độ thi ế t b ị là h ệ to ạ độ đượ c dùng b ở i m ộ t thi ế t b ị xu ấ t c ụ th ể nào đ ó nh ư máy in, màn hình Các đ i ể m đượ c bi ể u di ễ n b ở i c ặ p to ạ độ (x,y), nh ư ng x,y ∈ N Đ i ể m trong to ạ độ th ự c đượ c đị nh ngh ĩ a liên t ụ c, còn trong to ạ độ thi ế t b ị thì r ờ i r ạ c do tính ch ấ t c ủ a t ậ p các s ố t ự nhiên Các to ạ độ (x,y) có gi ớ i h ạ n trong m ộ t kho ả ng nào đ ó 1 2 Đ i ể m và đ o ạ n th ẳ ng a Đ i ể m Trong h ệ to ạ độ hai chi ề u (x,y), ngoài ra nó còn có tính ch ấ t màu s ắ c b Đ o ạ n th ẳ ng + Bi ể u di ễ n t ườ ng minh: y = f(x) M ộ t đ o ạ n th ẳ ng đượ c xác đị nh n ế u bi ế t 2 đ i ể m thu ộ c nó Ph ươ ng trình đ o ạ n th ẳ ng đ i qua 2 đ i ể m P (x1,y1) và Q(x2,y2) nh ư sau: (y-y 1 )/( x-x 1 ) = ( y 2 -y 1 )/( x 2 -x 1 ) (y-y 1 )(x 2 -x 1 )=(x-x 1 )(y 2 -y 1 ) (x 2 -x 1 )y=(y 2 -y 1 )x + y 1 (x 2 -x 1 ) - x 1 (y 2 -y 1 ) y = ((y 2 -y 1 )/(x 2 -x 1 ))x + y 1 - ((y 2 -y 1 )/(x 2 -x 1 ))x 1 y = kx + m k = (y 2 -y 1 )/(x 2 -x 1 ) Độ d ố c hay h ệ s ố góc c ủ a đườ ng m = y 1 - kx 1 Đ o ạ n ch ắ n trên tr ụ c y Δ y = k Δ x (t ứ c là khi x thay đổ i thì y thay đổ i theo) Hình 2 1 V ẽ đ o ạ n th ẳ ng PQ + Bi ể u di ễ n không t ườ ng minh: ax+by+c=0 m P( x 1 , y 1 ) Q( x 2 , y 2 ) CuuDuongThanCong com https://fb com/tailieudientucntt Ch ươ ng 2: Các gi ả i thu ậ t sinh th ự c th ể c ơ s ở 19 Ta có (y 2 -y 1 )x - (x 2 -x 1 )y + (x 2 -x 1 )y 1 - (y 2 -y 1 )x 1 = 0 (y 2 -y 1 )x - (x 2 -x 1 )y + x 2 y1 - x 1 y 2 = 0 hay rx + sy + t = 0 s = -(x 2 -x 1 ) r = (y 2 -y 1 ) và t = x 2 y 1 - x 1 y2 + Bi ể u di ễ n thông qua tham s ố : P(u) = P 1 + u(P 2 - P 1 )u ∈ [0,1] x(u) = x 1 + u( x 2 - x 1 ) y (u)= y 1 + u( y 2 - y 1 ) 2 CÁC GI Ả I THU Ậ T XÂY D Ự NG TH Ự C TH Ể C Ơ S Ở 2 1 Gi ả i thu ậ t v ẽ đ o ạ n th ẳ ng thông th ườ ng Nguyên lý chung: cho m ộ t thành ph ầ n to ạ độ x hay y bi ế n đổ i theo t ừ ng đơ n v ị và tính độ nguyên còn l ạ i sao cho g ầ n v ớ i to ạ độ th ự c nh ấ t Ta có ( ) 1 1 1 2 1 2 y x x x x y y y − − − − = Cho x thay đổ i tìm y, trong bài này cho x 1 thay đổ i ti ế n t ớ i x 2 ta ch ọ n đơ n v ị nh ỏ nh ấ t c ủ a màn hình Δ x=1 Gi ả i thu ậ t thông th ườ ng: void dline(int x1,int y1, int x2,int y2, int color) { float y; int x; for (x=x1; xxmaxy1,y2 > ymax x1,x2 < xminy1,y2 < ymin
- Xén tỉa: đoạn thẳng cần xén tỉa
Việc cài đặt giải thuật chia làm hai bước:
Gán mã vùng 4-bit cho mỗi điểm cuối của đoạn thẳng
Hình 4.8 Mặt phẳng mã trong các trường hợp clipping đoạn thẳng
Mã vùng được xác định theo 9 vùng của mặt phẳng mà các điểm cuối nằm vào đó Một bít được cài đặt true (1) hoặc false (0)
Bít 1: điểm cuối ở bên trên cửa sổ = sign(y-ymax)
Bít 2: điểm cuối ở bên dưới cửa sổ = sign(ymin-y)
Bít 3: điểm cuối ở bên phải cửa sổ = sign(x-xmax)
Bít 4: điểm cuối ở bên trái cửa sổ = sign(xmin-x)
Qui ước sign(a) = 1 nếu a dương
= 0 nếu a âm Quá trình kiểm tra vị trí của đoạn thẳng so với cửa sổ Tất cả điểm đầu và điểm cuối của đoạn thẳng đã có mã
Nếu mã của P1 hoặc P2 đều = 0000 thì toàn bộ đoạn thẳng thuộc phần hiển thị
If (P1.Mã OR P2.Mã == 0000) then“ cả đoạn thẳng thuộc cửa sổ hiển thị”
Nếu mã của P1 và P2 có cùng một vị trí mà ở đó P1 và P2 => cùng phía
If (P1.Mã AND P2.Mã != 0000) then “ 2 điểm nằm về 1 phía của cửa sổ”
Hình 4.9 Mô tả thuật toán Cohen Sutherland outcode
- Tìm giao điểm của đường thẳng với cửa sổ, chính xác hơn là với phần mở rộng của đường biên
- Chú ý: các đường biên mà điểm cuối được chọn sẽ “đẩy ngang qua” nhằm thay đổi mã “1” thành “0”
Nhìn trên hình ta có: gọi điểm cuối của đoạn (x1,y1)
Nếu C được chọn thì đường y=ymin chọn để tính phần cắt nhau (bít 2 = 1)
Nếu D được chọn thì y=ymax hoặc x=xmax (bít 1 và bít 3 =1)
Hoặc: ymax ymin xmin xmax
Có m là độ dốc của đoạn thẳng m=(y2-y1)/(x2-x1)
Bây giờ thay điểm cuối (x1,y1) với điểm cắt (xi,yi)
Ví dụ: Cho cửa sổ cắt tỉa hình chữ nhật có góc trái dưới L(-3,1), góc phải trên R(2,6) Hãy tìm mã vùng dành cho các điểm cuối của các đoạn AB có A(-2,3), B(1,2) ; CD có C(- 4,7), D(-2,10) ; IK có I(-4,2), K(-1,7)
Tìm hạng mục cắt tỉa của chúng
Bít 1 = sign(y-ymax) = sign(y-6) Bít 2 = sign(ymin-y) = sign(1-y) Bít 3 = sign(x-xmax) = sign(x-2) Bít 4 = sign(xmin-x)= sign(-3-x) Qui ước sign(a) = 1 nếu a dương = 0 nếu a âm
AB có mã vùng đều là (0000) nên nó nằm hoàn toàn trong
CD có (1001) and (1000) = (1000) (!= (0000)) nên hoàn toàn nằm ngoài
IK có (0001) or (1000) =(1001) và (0001) and (1000) =(0000) nên phải xén tỉa Xét I(0001) dựa trên đường biên xmin =-3
1 min x x m y y x x c c c xmin = -3 m=(y2-y1)/x2-x1)= (7-2)/ (-1-(-4)) = 5/3 yc=2 + 5/3 (-3-(-4)) = 11/3 Thay I bởi I1 (-3,11/3) (có mã vùng 0000) Xét K(1000) cắt ymax =6
1 ( )/ y y m y y x x c c c yc=6 xc=-1 +(6-7)/(5/3)=-8/5 Thay K bởi K1(-8/5,6) có mã vùng 0000)
Vậy sau khi xén tỉa đoạn IK thu được I1K1
Biểu diễn đoạn thẳng theo tham biến: đoạn thẳng bất kỳ đi qua hai điểm P1(x1,y1) và
P2(x2,y2) chúng ta có phương trình tham biến:
Hình 4.10 Phương trình tham số cho đoạn thẳng x=x(u) có 0 2.6), N số lượng hạt tại một thời điểm phát ra từ cathode trong một chùm tia điện tử
Trong đó V điện áp tỉ lệ với N trên mỗi điểm ảnh
Giả sử chúng ta có một cường độ sáng I thì bước đầu tiên ta phải làm là tìm ra giá trị Ij gần nhất qua phép làm tròn Giá trị j tìm được I= r j I0 vậy r j =I/I0 suy ra j = ROUND(logr ( I / I0 )) Thay j vào công thức ta có:
Bước tiếp theo của tiến trình là xây dựng mức điện áp Vj cho điểm ảnh mà cường độ ánh sáng có giá trị tương ứng là Ij
Ta thấy để cường độ sáng là như nhau cho các màn hình (hay ảnh là như nhau), thì chỉ còn thay đổi giá trị gama Giá trị gama là số mũ của hàm luỹ thừa, giá trị đó đối với loại phim nhựa 35mm trong phòng tối là 1.5 Nhưng hệ số gama của CRT là loại thiết bị độ sáng phụ thuộc vào ống phóng tia điện tử Thực tế giá trị gama của CRT dao động từ 2.3 đến 2.6
Ta có sự phản hồi tuyến tính của CRT có thể được bù bởi phần cứng và phép bù này gọi là phép hiệu chỉnh gama (Gama correction) Việc sử dụng Ij làm chỉ số trong Lookup table (LUT) để tìm ra cường độ sáng cho các điểm ảnh trên màn hình gọi là phép hiệu chỉnh gama với bảng LUT Vậy bao nhiêu khoảng sẽ là đủ nhỏ cho việc thể hiện một điểm ảnh đen trắng là liên tục? Theo tính toán thì r=1.01 là mức ngưỡng phân biệt của mắt Nếu r80 dpi, còn trong tạp chí và sách cao hơn là khoảng từ 110 -> 120 dpi
Hình 6.10 Dùng đen trắng để thể hiện ảnh màu
Ta có giải thuật phân ngưỡng (Thread Hold) Phân ngưỡng là lấy một giá trị trung bình của cả vùng ảnh làm ngưỡng và so sánh nó với mức sáng của từng điểm ảnh trong ô Nếu giá trị của nó lớn hơn ngưỡng thì điểm đó được bật (on), nếu ngược lại thì tắt (off)
Ta thấy với phương pháp này mất đi nhiều thông tin của ảnh gây ra một số hiệu ứng phụ cho ảnh Để giải quyết ta dùng phương pháp sau:
Mẫu tô: ta biểu diễn một điểm ảnh trên màn hình theo các mẫu tô Đơn vị nhỏ nhất của ảnh lưới là 2x2 ta có 5 mức độ để thể hiện cường độ sáng của vùng đơn vị Ma trận lưới kích thước nxn chúng ta có n 2 +1 độ phân giải khác nhau Hình dưới đây là ma trận 3x3 và các đơn vị mã là 0 đến 9
Hình 6.11 Phân bố các điểm trong vùng theo thứ tự tăng dần
Việc thể hiện cường độ vùng ảnh I bây giờ chỉ còn đơn thuần là bật tất cả các vị trí < I
- Thứ nhất:Không dùng ma trận mẫu có dạng đường thẳng ngang
- Thứ hai: Các mẫu phải được hình thành theo chuỗi các bước liên tiếp nhau sao cho mọi điểm ảnh có mật độ thể hiện ngưỡng a đều phải có mặt để thể hiện mọi ngưỡng b với b
- Thứ ba: Các mẫu phải được phát triển theo quy tắc từ tâm đi dần ra xung quanh Nhờ đó sẽ gây được cho người sử dụng hiệu ứng tăng kích thước điểm
- Thứ tư: Với một số các thiết bị in như máy in laser hay các thiết bị ghi hình, vấn đề về các điểm độc lập tuyệt đối là rất khó có khả năng đạt được Khi mà đại đa phần các điểm ảnh được bật cho một cường độ sáng thì chúng sẽ gây ra các thay đổi cho các điểm còn lại
Xấp xỉ bán tông với ảnh màu: Ta lấy mỗi cell không phải là một đơn vị nữa mà là ba đơn vị nhỏ đặc trưng cho ba màu (Red, Green, Blue)
Hình 6.12 Màu sắc trong ảnh màu 2.4 Ma trận Dither và phép lấy xấp xỉ bán tông
Bayer năm 1973 đã đưa ra dạng ma trận dither mà nhờ đó tăng được độ mịn của ảnh khi hiển thị
Ma trận 2 × 2 ma trận dither có ký hiệu D (2):
Tính các ma trận D (2n) thông qua D (n) :
U (n) là ma trận n × n với tất cả các phần tử = 1
Với n = 4 và kết quả từ D (2)
D ( Để xác định điểm (x,y) là bật hay tắt, ta cần xác định vị trí điểm tương ứng với vị trí ma trận Dither để so sánh cường độ sáng trung bình S với giá trị đó trong ma trận Nếu S>Dij thì bật
CÁC HỆ MÀU TRONG MÀN HÌNH ĐỒ HỌA
Mô hình màu - color model: là hệ thống có quy tắc cho việc tạo khoảng màu từ tập các màu cơ bản
Có 2 loại mô hình màu là:
- Màu thêm (additive): mô hình màu thêm sử dụng ánh sáng - light để hiển thị màu Màu sắc của mô hình này là kết quả của ánh sáng truyền dẫn - transmitted
- Màu bù (subtractive): mô hình màu bù sử dụng mực in - printing inks Màu sắc cảm nhận được là từ ánh sáng phản xạ - reflected light (lấy màu trội)
Khoảng màu mà chúng ta tạo ra với tập các màu cơ bản gọi là gam màu hệ thống (system’s color gamut)
Mỗi mô hình màu có khoảng màu hay gam màu riêng gamut (range) của những màu mà nó có thể hiển thị hay in
Mỗi mô hình màu được giới hạn khoảng của phổ màu nhìn được Gam màu hay khoảng còn được gọi là không gian màu "color space" Ảnh hay đồ hoạ vector có thể nói: sử dụng không gian màu RGB hay CMY hay bất cứ không gian màu nào khác
Một số ứng dụng đồ hoạ cho phép người dùng sử dụng nhiều mô hình màu đồng thời để soạn thảo hay thể hiện đối tượng hình học Ðiểm quan trọng là hiểu và để cho đúng mô hình cần thiết cho công việc
Có ba hệ màu định hướng phần cứng:
- RGB (Red, Green, Blue) dùng với CRT
- YIQ trong hệ thống tivi màu băng tần rộng
- CMY (Cyan, Mangenta, Yellow) sử dụng một số thiết bị in màu
Không có một mô hình màu nào trong các mô hình thực tế trên có tính dễ sử dụng, vì chúng không có mối liên hệ trực tiếp với ý niệm màu trực giác của con người Màu mà con người cảm nhận:Hue (sắc màu), Saturation (độ bão hoà), Lightness (độ sáng)
Các mô hình màu khác nhau được phát triển nhằm sử dụng cho một tiêu chí nhất định
3.1 Mô hình màu RGB (Red, Green, Blue - đỏ, lục, lam)
Gam màu thể hiện trong màn hình CRT xác định bằng những đặc tính của hiện tượng phát quang các chất phốt pho trong màn hình CRT Mô hình không gian màu RGB được sắp xếp theo khối lập phương đơn vị Đường chéo chính của khối lập phương với sự cân bằng về số lượng từng màu gốc tương ứng với các mức độ xám với đen là (0,0,0) và trắng (1,1,1)
Hình 6.13 Mô hình không gian màu RGB
C = rR + gG + bB Trong đó C = màu hoặc ánh sáng kết quả (r,g,b) = toạ độ màu trong miền [0 1], (R,G,B) các màu cơ bản đỏ, lục và lam
Nếu hai màu tạo ra cùng một giá trị kích thích thì chúng ta không thể phân biệt được hai màu Không gian màu RGB dựa theo chuẩn ITU-R BT.709, với gama = 2.2 và điểm trắng của mô hình là 6500 degrees K
3.2 Mô hình màu CMY (Cyan, Magenta, Yellow - xanh tím, Đỏ tươi, vàng) Đây là mô hình màu bù (Subtractive color models) hiển thị ánh sáng và màu sắc phản xạ từ mực in Bổ xung thêm mực đồng nghĩa với ánh sáng phản xạ càng ít
Khi bề mặt không phủ mực thì ánh sáng phản xạ là ánh sáng trắng - white
Khi 3 màu có cùng giá trị cho ra màu xám Khi các giá trị đạt max cho màu đen
Ta có Red +Cyan = Black ; Green +Magenta = Black ; Blue + Yellow = Black
Hình 6.14 Mô hình không gian màu CMY
Mô hình mở rộng của CMY ứng dụng trong máy in màu Giá trị đen bổ xung vào thay thế cho hàm lượng màu bằng nhau của 3 màu cơ bản
Mô hình màu YIQ là mô hình màu được ứng dụng trong truyền hình màu băng tần rộng tại
Mỹ, và do đó nó có mối quan hệ chặt chẽ với màn hình đồ hoạ màu raster YIQ là sự thay đổi của RGB cho khả năng truyền phát và tính tương thích với ti vi đen trắng thế hệ trước Tín hiệu truyền sử dụng trong hệ thống NTSC (National Television System Committee)
Sự biến đổi RGB thành YIQ được xác định theo công thức sau:
Y độ chói, I & Q đại lượng về màu sắc
Chú ý: Y giống như Y trong mô hình CIE’s
Nó hoàn toàn tương thích với đen/trắng (B/W) của TV
Những đại lượng trong ma trận biến đổi được tìm bằng cách sử dụng các phosphor NTSC RGB chuẩn có các toạ độ sắc phổ là R(0.67 0.33), G (0.21 0.71) và B(0.14 0.08) Người ta cũng giả định rằng điểm trắng nằm ở xw =0.31 , yw = 0.316 và Yw =1.0
3.4 Mô hình màu HSV (Hue, Saturation,Value) - Mỹ thuật
Yếu tố cảm nhận màu sắc:
- Hue - sắc màu: dùng để phân biệt sự khác nhau giữa các màu như xanh, đỏ, vàng
- Saturation - độ bão hoà: chỉ ra mức độ thuần của một màu hay khoảng cách của màu tới điểm có cường độ cân bằng(màu xám)
- Lightness - độ sáng: hiện thân về mô tả cường độ sáng từ ánh sáng phản xạ nhận được từ đối tượng
- Brightness - độ phát sáng: cường độ ánh sáng mà tự đối tượng phát ra chứ không phải do phản xạ từ các nguồn sáng khác
Mô hình màu RGB, CMY, YIQ được định hướng cho phần cứng
HSV (Hue, Saturation, Value)=HSB(Hue, Saturation, Brightness) định hướng người sử dụng dựa trên cơ sở về trực giác về tông màu, sắc độ và sắc thái mỹ thuật
Mô hình màu HSV được Alvey Ray Smith đưa ra 1978 Hue: màu sắc 0 0 -360 0 đo bởi góc quay xung quanh trục đứng với màu đỏ là 0 0 , màu lục là 120 0 , màu lam là 240 0 Các màu bổ sung cho hình chóp ở 180 0 đối diện với màu khác
Value-Brightness:(độ sáng) 0-1 đường cao V với đỉnh là các điểm gốc toạ độ (0,0) Điểm ở đỉnh là màu đen và giá trị V=0, tại các điểm này giá trị của H và S không liên quan đến nhau Khi điểm có S=0 và V=1 là điểm màu trắng, những giá trị trung gian của V đối với S=0 (trên đường thẳng qua tâm) là các màu xám Khi S=0 giá trị của H phụ thuộc được gọi bởi các qui ước không xác định Ngược lại khi S khác 0 giá trị H sẽ là phụ thuộc
Saturation: Độ bão hoà 0-1, giá trị của S là tập các giá trị từ 0 trên đường trục tâm (trục V) đến 1 trên các mặt bên tại đỉnh của chóp 6 cạnh
Hình 6.15 Mô hình màu HSV
Mô hình màu HLS (Hue, Lightness, Saturation Model) – không gian màu trực quan
Mô hình thường được sử dụng trong kỹ thuật đồ hoạ Ưu điểm là rất trực giác ví dụ ta có thể chọn màu, thay đổi độ sáng và thay đổi độ bão hoà Nhược điểm là khi chuyển đổi với không gian màu RGB sẽ có sai số (cube stood on end) thay đổi trên các loại màn hình khác nhau, rõ ràng không cảm nhận đều các màu
Hình 6.16 Mô hình màu hình chóp sáu cạnh đôi HLS
Chúng ta có thể coi mô hình HLS như một sự biến dạng của mô hình HLS mà trong đó mô hình này màu trắng được kéo hướng lên hình chóp sáu cạnh phía trên từ mặt V=1 Như với mô hình chóp sáu cạnh đơn, phần bổ sung của màu sắc được đặt ở vị trí 180 0 hơn là xung quanh hình chóp sáu cạnh đôi, sự bão hoà được đo xung quanh trục đứng, từ không trên trục tới 1 trên bề mặt Độ sáng (Lightness)=0 cho màu đen (tại điểm mút thấp nhất của hình chóp sáu cạnh đôi) và bằng
1 cho màu trắng (tại đầu mút cao nhất)
3.5 Biểu đồ màu CIE (1931 – Commission Internationale de l’Eclairage)
CHUYỂN ĐỔI GIỮA CÁC HỆ MÀU
Việc xây dựng và thể hiện màu sắc của các đối tượng trên màn hình đồ hoạ chỉ thực hiện qua mô hình ba màu mà phần cứng hỗ trợ RGB Vậy khi phần mềm ứng dụng có sử dụng đến các mô hình màu khác, ta phải chuyển đổi giữa chúng
Hệ HSV có H (sắc màu) chạy từ 0 0 đến 360 0 với màu đỏ tại 0 0
S (độ bão hoà) và V (giá tị cường độ ánh sáng) thuộc khoảng [0 1]
If (S==0)//H khong tham gia - đen trắng
Else // Khi đó S0 trường hợp màu // Màu của điểm ảnh được xác định thông qua 3 biến phụ M,N và K if (H=60) H=0;
I = (int)H; // lấy giá trị nguyên
K = V*(1- S*(1- F)); if I == 0 then (R,G,B) = (V,K,M); if I == 1 then (R, G, B) = (N, V, M); if I == 2 then (R, G, B) = (M, V, K); if I == 3 then (R, G, B) = (M, N, V); if I == 4 then (R, G, B) = (K, M, V); if I == 5 then (R, G, B) = (V, M, N);
4.2 Chuyển đổi RGB sang XYZ
Các nhà sản xuất cung cấp các toạ độ XYZ cho phốt pho tương ứng với màu RGB mà màn hình hiển thị: (Xr, Yr, Zr ), (Xg, Yg, Zg) và (Xb, Yb, Zb)
Thường [X Y Z] cho mỗi phốt pho (phosphor) thì không được cung cấp, nên chúng ta tính với trường hợp điểm trắng (whitepoint) khi R=G=B=1
Bây giờ chúng ta cần biết độ chói của điểm trắng được gửi bởi Yw Ta đặt:
Er = Xr + Yr + Zrsuy ra xr = Xr / Er vậy Xr = xr Er ; Yr = yr.Er ; Zr = (1- xr – yr ).Er
Mà ta có theo NTSC: RGB chuẩn (xw, yw, Yw) như sau: xw = 0.31, yw = 0.316 và Yw =1.0 Có: w w w w w X Y Z y Y
X suy ra Xw =Xr + Xg + Xb = xrEr + xrEg + xbEb
Ta hoàn toàn tính được: Er, Eg và Eb
Chương này chúng ta nghiên cứu cấu tạo của ánh sáng (về mặt vật lý), rồi xét bộ phận cảm nhận ánh sáng của con người là mắt Đưa ra các hệ màu định hướng cho phần cứng như: RGB dùng cho máy tính, CMYK dùng cho máy in và YIQ dùng cho truyền hình Tất cả các hệ màu này con người đều không cảm nhận được, con người chỉ cảm nhận được hệ màu HSV hay HLS Từ tất cả các ưu nhược điểm của các hệ màu trên, từ sự cảm nhận màu sắc của con người phụ thuộc vào cấu tạo của các tế bào mắt nên năm 1913 tổ chức quốc tế về ánh sáng đã đưa ra hệ màu chuẩn thuần nhất CIE Hệ màu này có thể bao hàm tất cả các hệ màu trên, nó giải quyết được các nhược điểm của hệ màu RGB Cuối cùng chúng ta đưa ra các công thức để chuyển đổi giữa các hệ màu với nhau
1 Giả sử rằng môi trường trọng tâm là không khí (hoặc chân không) hãy mô tả dải quang phổ hiển thị bằng một dải tần số
2 Tại sao mọi thứ trông có vẻ màu xám hoặc đen trong một phòng tối nơi chúng ta hầu như không thể nhìn thấy được?
3 Hãy thiết lập một công thức đơn giản để tính diện tích bị giới hạn bởi hàm phân bố P(λ) (Xem hình 6.9 sách Kỹ thuật đồ hoạ)
4 Từ hàm phân bố P(λ) hãy lập công thức tính độ bão hoà từ hình 6.9 - sách kỹ thuật đồ hoạ
5 Sự khác nhau giữa Y trong CMY và Y trong YIQ là gì?
6 Giả sử rằng một màn hình hiển thị tạo nên những gì được gọi là màu trắng chuẩn với xw 0.313 yw =0.329 và Yw = 1.0 (R=G=B=1) Và các toạ độ sắc phổ của phốt pho giống như toạ độ được tìm thấy ở mô hình màu
Hãy tìm ma trận biến đổi màu M cho màn hình hiển thị
7 Hãy kiểm nghiệm rằng Y trong mô hình CIE XYZ tương tự Y trong mô hình màu NTSC YIQ Ta có NTSC chuẩn thì: xw =0.31 , yw = 0.316 và Yw =1.0 và sử dụng các toạ độ sắc phổ của các phốt pho NTSC chuẩn: R(0.67 0.33), G (0.21 0.71) và B(0.14 0.08)
1 Màn hình CRT thì giá trị gama là: a 1.5 b Từ 2.3 đến 2.6 c 3.3 đến 4 d 1.01
2 Người bị mù màu (chỉ thấy sáng và tối) là người: a Mắt bị mất tế bào que b Mắt bị mất tế bào nón c Mắt bị mất cả tế bào nón và que d Mắt có tỷ lệ ba tế bào nón không bình thường
3 Con người nhạy cảm với màu: a Lục b Lam c Vàng d Đỏ
4 Trong ảnh đen trắng, ta biểu diễn một điểm ảnh trên màn hình theo các mẫu tô Nếu ma trận lưới của mẫu tô kích thước 4x4, thì chúng ta có cả thẩy số mẫu tô là: a 15 b 16 d 18
5 Hệ màu mà con người cảm nhận là: a Hue (sắc màu), Saturation (độ bão hoà) và Lightness (độ sáng) b RGB (Red - đỏ, Green - lục, Blue - lam) c CMY (Cyan - xanh tím, Mangenta - đỏ tươi và Yellow - vàng) d CIE
6 Ta có ba màu nước đỏ (Red), lục (Green) và lam (Blue) đem trộn các màu bão hoà và cân bằng thì thu được màu: a Trắng b Đen c Đỏ d Cả ba đều sai
7 Máy in màu thường gồm số hộp mực màu: a 2 hộp b 3 hộp c 4 hộp d Càng nhiều hộp thì in càng được nhiều màu
ĐƯỜNG CONG VÀ MẶT CONG TRONG 3D
ĐƯỜNG CONG - CURVE
Trong các ứng dụng của đồ hoạ máy tính, hầu như các thực thể là đường cong mềm và mặt cong, chúng dùng để mô tả thế giới thực: nhà cửa, xe cộ, núi non….hay xây dựng nên các thực thể đang được thiết kế Nhưng ta thấy sử dụng các phương trình đường cong không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế, còn nếu ta dùng tập hợp các điểm thì thường cần nhiều dung lượng nhớ để lưu trữ cũng như tốc độ tính toán
Ta có quỹ đạo chuyển động của một điểm trong không gian thì tạo thành đường cong Trong chương này sẽ đưa ra phương pháp tổng thể về những mô hình toán học để biểu diễn và xây dựng các loại đường và mặt cong trong không gian 3D trên máy tính
1.1 Điểm biểu diễn đường cong (curve represents points )
Ta thấy qua hai điểm vẽ được một đường thẳng Qua ba điểm vẽ được một đường cong trong mặt phẳng Qua bốn điểm vẽ được một đường cong trong không gian Dùng các phương trình đường cong như Hypebol, parabol thì tính toán phức tạp và không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế
Chọn đường cong như thế nào để phù hợp với máy tính? Biểu diễn Điểm và kiểm soát đường cong -Points represent-and control-the curve Đường cong là các đối tượng cơ bản thường là kết quả của tiến trình thiết kế và các điểm đóng vai trò là công cụ để kiểm soát và mô hình hoá đường cong Cách tiếp cận này là cơ sở của lĩnh vực thiết kế mô hình hình học nhờ máy tính (Computer Aided Geometric Design - CAGD)
Các cách để biểu diễn đường cong:
Tường minh (Explicit functions): y = f(x), z = g(x) Không tường minh (Implicit equations): f(x,y,z) = 0 Biểu diễn các đường cong tham biến (Parametric representation) x = x(t), y = y(t), z = z(t) trong đó t ∈[0 1]
Hệ đồ hoạ ứng dụng chỉ mô tả bó hẹp trong đoạn nào đấy Đường cong bậc cao với mỗi giá trị của x ta luôn có 2 tập giá trị của y (thực tế chỉ cần
Chúng ta cần biểu diễn đường cong mềm (chỉ biễu diễn đường “cong gẫy”)
1.2 Đường cong đa thức bậc ba tham biến
Phải đảm bảo là đường cong không gian với 3 trục toạ độ x, y, z Tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý muốn xuất hiện ở những đường đa thức bậc cao Công thức mô tả:
Hình 7.1 Đường cong đa thức bậc ba
Biểu diễn các đường cong tham biến (Parametric representation): x = f 3 (u), y = f 3 (u), z = f 3 (u) trong đó u ∈[0 1]
Theo Lagrange: x = a1 + b1u + c1u 2 + d1u 3 y = a2 + b2u + c2u 2 + d2u 3 z = a3 + b3u + c3u 2 + d3u 3 Ở đây ba phương trình với 12 ẩn số
Với 4 điểm p0, p1, p2, p3 phương trình xác định (vì 4 điểm thì xác định 1 đường cong trong không gian).
Mỗi 1 điểm cho ta cặp 3 giá trị:
Cả thảy có 12 phương trình, thay vào 3 phương trình trên ta tính được 12 ẩn a1 d3
Ghi chú: rõ ràng có sự thay đổi một chút về đường cong thì ta lại phải giải lại hệ phương trình để tính các tham số cho đường cong, dẫn đến tính toán chậm
Phương pháp Hermite dựa trên cơ sở của cách biểu diễn Ferguson hay Coons năm 60 Với phương pháp của Hermite đường bậc ba sẽ xác định bởi hai điểm đầu và cuối cùng với hai góc nghiêng tại hai điểm đó
Theo công thức toán học hàm bậc ba được biểu diễn dưới dạng: p = p(u) = k0 + k1u + k2u 2 + k3u 3 p(u) = ∑kiuii∈n (với ki là các tham số chưa biết) Độ dốc của đường cong được đo bằng p’(u) p’ = p’(u) = k1 + 2k2u + 3k3u 2 p0 và p1 ta có hai độ dốc p0’ và p1’ với u = 0 và u = 1 tại hai điểm đầu cuối của đoạn [0,1] p 0 (u=0)=k 0 p’ 0 (u=0)=k 1 p 1 (u=1)=k 0 +k 1 +k 2 +k 3 p’ 1 (u=1)= k 1 +2k 2 +3k 3 hay k0=p0 và k1=p’0 k2=3(p1 – p0) - 2p0’ – p1’ và k3 = 2(p0-p1) + p0’ + p1’
Khi đã có ko, k1, k2, k3 thay vào: p = p(u) = k0 + k1u + k2u 2 + k3u 3 p0(1-3u 2 +2u 3 ) + p1(3u 2 -2u 3 ) + p0’(u-2u 2 +u 3 ) + p1’(-u 2 +u 3 )
Thay đổi của các điểm hay các góc nghiêng (thay đổi 2 vector) dẫn đến sự thay đổi hình dạng của đường
Việc sử dụng điểm với các vector kiểm soát được độ dốc của đường cong tại những điểm mà nó đi qua Tuy nhiên không được thuận lợi cho việc thiết kế tương tác, không tiếp cận với các độ dốc của đường cong bằng các giá trị số (Hermite)
Paul Bezier, nhân viên hãng RENAULT vào năm 1970 đi đầu trong việc ứng dụng máy tính cho việc xây dựng các bề mặt Hệ thống UNISURF của ông đựơc áp dụng trong thực tế vào năm
1972 được thiết kế và kiểm xe Mezesez hay Renaut
Bezier đã sử dụng đa giác kiểm soát cho đường cong tại những đỉnh của đa giác và tiếp tuyến tại đó (p0,p1,p2,p3)
Ta có p0, p3 tương đương với p0, p1 trên đường Hermite, điểm trung gian p1, p2 được xác định bằng 1/3 theo độ dài của vector tiếp tuyến tại điểm po và p3
Hình 7.3 Đa giác kiểm soát Bezier p0’ = 3(p1 – p0)
Hình 7.4 Hàm hợp của đường cong Bezier Ưu điểm:
Dễ dàng kiểm soát hình dạng của đường cong hơn vector tiếp tuyến tại p0’ và p1’ của Hermite
Nằm trong đa giác kiểm soát với số điểm trung gian tuỳ ý (số bậc tuỳ ý), có số bậc =số điểm kiểm soát -1 Đi qua điểm đầu và điểm cuối của đa giác kiểm soát, tiếp xúc với cặp hai vector của đầu cuối đó
Biểu thức Bezier-Bernstain Đường Bezier cũng có thể được biết đến như biểu thức Bezier Bernstain bởi kỹ thuật mà Bezier sử dụng là áp dụng công thức hoá các vector trong phép tính đa giác xấp xỉ được Bernstain phát triển gần đây Phép toán đại số được xác định như sau:
Trong đó P0 Pn: vector vị trí của đa giác (n+1) đỉnh
1.5.1 Đườ ng cong b ậ c ba Spline
Trong công thức của Bezier, chúng ta sử dụng hàm hợp liên tục để xác định điểm kiểm soát tương đối Với các điểm nội suy thì mức độ tương đối sẽ khác nhau mà trong đó một chuỗi các phần tử nhỏ sẽ kết hợp với nhau tạo ra đường cong đa hợp Theo tính toán thì đường bậc ba sẽ đa thức bậc thấp nhất có thể để biểu diễn một đường cong trong không gian và chuỗi điểm Hermite sẽ phù hợp nhất đối với việc xây dựng nên đường cong đa hợp này
Việc yêu cầu người sử dụng đưa vào các vector tiếp tuyến tại mỗi điểm trong tập hợp các điểm là cực kỳ bất tiện cho nên thường trong các đường bậc ba đa hợp ta sử dụng các điều kiện biên liên tục trong phép đạo hàm bậc một và hai tại điểm nối giữa và đường cong được xác định như trên gọi là đường spline bậc ba với phép đạo hàm liên tục bậc hai Giá trị đạo hàm của đường cong sẽ xác định độ cong tại mỗi điểm nút và nó cũng đưa ra điều kiện biên cho mỗi đoạn trên đường cong
MÔ HÌNH BỀ MẶT (Surface) VÀ CÁC PHƯƠNG PHÁP XÂY DỰNG
2.1 Các khái niệm cơ bản
Mặt cong (surface): là quỹ đạo chuyển động của một đường cong tạo nên Biểu diễn tham biến cho mặt cong:
Dựa vào việc xây dựng và tạo bề mặt toán học trên những điểm dữ liệu
Dựa trên việc xây dựng nên bề mặt phụ thuộc vào biến số có khả năng thay đổi một cách trực diện thông qua các tương tác đồ hoạ
Biểu diễn miếng tứ giác - quadrilatera Patches
Biểu diễn miếng tam giác - Triangular Patches
2.2 Biểu diễn mảnh tứ giác
Thành phần u,v là các tham biến
Các điểm Q(0,0) Q(0,1), Q(1,0), Q(1,1) là cận của mảnh, các đường cong Q(1,v), Q(0,v), Q(u,0), Q(u,1) là các biên của mảnh Đạo hàm riêng tại điểm Q(u,v) xác định vector tiếp tuyến theo hướng u, v
Hình 7.8 Biểu diễn mảnh tứ giác
Hình 7.9 Kết nối mảnh tứ giác
Thực thể hình học biểu diễn thông qua các mảnh cùng dạng, các mảnh có thể nối với nhau theo các hướng u,v khi hai mảnh cùng hướng đó Nếu mọi điểm trên biên của hai mảnh bằng nhau, hay hai biên bằng nhau Hai mảnh liên tục bậc C0 Nếu hai biên bằng nhau và đạo hàm bằng nhau trên cùng một hướng thì hai mảnh gọi là kết nối bậc C1
Tập các điểm P1,P2 Pn , tập các tổ hợp của các điểm đó k1P1 + k2P2 + k3P3 + knPn
Các điểm tạo thành không gian affine với các giá trị tọa độ nates k1,k2,k3, knđược gọi là hệ toạ độ barycentric
Trong tam giác các điểm có dạng P1, P2, P3
Nếu Hệ số ki > 1 hoặc =0.0 && t