intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn thạc sĩ: Xây dựng mặt lưới tam giác 3D xấp xỉ mặt cong tham số Bézier

Chia sẻ: Sdfas Vfdtg | Ngày: | Loại File: PDF | Số trang:13

67
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Xây dựng mặt lưới tam giác 3D xấp xỉ mặt cong tham số Bézier nhằm hỗ trợ cho việc mô phỏng các đối tượng thế giới thực, mô hình hóa thực tại ảo, mô phỏng hình học, game và phim hoạt hình 3D.

Chủ đề:
Lưu

Nội dung Text: Luận văn thạc sĩ: Xây dựng mặt lưới tam giác 3D xấp xỉ mặt cong tham số Bézier

  1. B GIÁO D C VÀ ĐÀO T O Công trình ñư c hoàn thành t i Đ I H C ĐÀ N NG Đ I H C ĐÀ N NG Ngư i hư ng d n khoa h c: TS. NGUY N T N KHÔI NGUY N ĐÔNG KỲ Ph n bi n 1:……………………………………… XÂY D NG M T LƯ I TAM GIÁC 3D X P Ph n bi n 2:……………………………………… X M T CONG THAM S BÉZIER Lu n văn s ñư c b o v trư c H i ñ ng ch m Lu n văn Chuyên ngành: Khoa h c máy tính t t nghi p th c sĩ k thu t h p t i Đà N ng vào ngày …….tháng……..năm 2012 Mã s : 60.48.01 TÓM T T LU N VĂN TH C SĨ K THU T Có th tìm hi u lu n văn t i: - Trung tâm thông tin - H c li u, Đ i h c Đà N ng - Trung tâm h c li u, Đ i h c Đà N ng Đà N ng – Năm 2012
  2. 1 2 M Đ U - Xây d ng chương trình th c nghi m t o m t lư i x p x v i m t m t cong tham s Bézier cho trư c 1. Lý do ch n ñ tài 3. Đ i tư ng và ph m vi nghiên c u M t cong tham s Bézier trong ñ h a máy tính ñư c s d ng Đ tài t p trung nghiên c u phương pháp bi u di n và xây ñ mô t ñ i tư ng trong th gi i th c và ñư c ng d ng r ng rãi vào d ng các b m t tham s Bézier và k thu t chuy n ñ i t b m t các lĩnh v c m i như CAD/CAM, trò chơi game 3D, phim ho t hình trơn tham s Bézier sang b m t lư i tam giác x p x tương ng. Đ i 3D, th c t i o (virtual reality), ki n trúc, b o t n các di s n văn hóa, tư ng nghiên c u c th ñó là: v.v.... T ñó ñ t ra nhu c u tìm hi u các phương pháp bi u di n m t cong tham s . Các ñ i tư ng m t cong sau ñó ñư c ñưa v d ng lư i - Mô hình hóa 3D ña giác x p x m t cong m c ñích ñ tính toán, ch t o, hi n th , k t - Đư ng và m t cong tham s Bézier xu t m t ñ i tư ng 3D hoàn ch nh theo yêu c u. Do v y, vi c nghiên - B m t lư i 3D c u các d ng ñư ng và m t cong tham s Bézier ph c v quá trình mô hình hóa ñ i tư ng 3D, t ñó xây d ng b m t lưói tam giác x p - K thu t t o lư i tam giác t m t cong tham s Bézier x v i m t cong tham s Bézier ñ tô bóng, hi n th ñ i tư ng, k t 4. Phương pháp nghiên c u xu t ra file d li u nh m ph c v s n xu t CAD/CAM ñang là m t yêu c u c p thi t hi n nay. - Thu th p tài li u và thông tin liên quan ñ n ñ tài Xu t phát t nhu c u th c ti n như trên, tôi ñã xu t ñ tài lu n - L a ch n phương pháp, cách ti p c n phù h p v i n i văn: dung “XÂY D NG M T LƯ I TAM GIÁC 3D X P X M T - Xác ñ nh ph m vi nghiên c u và phương pháp gi i quy t CONG THAM S BÉZIER” v nñ 2. M c ñích nghiên c u - Nghiên c u phương pháp bi u di n ñư ng và m t cong tham s Bézier - Tìm hi u phương pháp bi u di n ñ i tư ng 3D, ñư ng và m t cong tham s Bézier - So sánh, ñánh giá các phương pháp hi n có - Đưa ra gi i pháp chuy n ñ i m t b m t trơn tham s - Đ xu t gi i pháp t o lư i cho các ñ i tư ng m t cong Bezier sang d ng lư i tam giác nh m tính toán x lý, hi n tham s Bézier th nh m ph c v cho các ng d ng th c ti n. - Xây d ng chương trình th c nghi m
  3. 3 4 - Ki m tra, th nghi m và ñánh giá k t qu hóa m t ñ i tư ng 3D mà n i dung chính là các cơ s toán h c v ñư ng và m t cong tham s cùng các phép bi n ñ i hình h c 3D. 5. Ý nghĩa khoa h c và th c ti n c a ñ tài Chương 2: PHƯƠNG PHÁP BI U DI N M T CONG TAM - H tr cho vi c mô ph ng các ñ i tư ng th gi i th c, mô GIÁC BÉZIER ñư c trình bày. Tr ng tâm c a chương này trình bày hình hóa th c t i o, mô ph ng hình h c, game và phim các cơ s toán h c ñ bi u di n m t m t cong tham s tam giác ho t hình 3D. Bézier. - Gi i pháp xây d ng lư i ñ i tư ng 3D m t cong tham s N i dung c a Chương 3 trình bày tr ng tâm ñ n vi c XÂY Bézier. D NG M T LƯ I TAM GIÁC X P X M T CONG THAM S - Cung c p ch c năng mô hình hóa ñ i tư ng 3D, thao tác BÉZIER. N i dung trình bày khái quát m t s phương pháp xây trên ñ i tư ng 3D và hi n th các thông s hình h c c a d ng lư i tam giác theo các phương pháp khác nhau d a trên gi i ñ i tư ng, k t xu t ra t p tin mô t thông tin v ñ i tư ng. thu t de Casteljau. Đ xu t phương pháp xây d ng, làm m n lư i b ng các PN-triangles s là hư ng nghiên c u và phát tri n sau này. - Cung c p ch c năng h tr tái t o v t th t t p ñi m r i Sau cùng là m t s k t qu th c nghi m minh h a. r c 3D thành mô hình ñ i tư ng 3D, thi t k và hi u ch nh mô hình, k t xu t các ñ i tư ng m t cong tham s 3D Ph n cu i là K t lu n và hư ng phát tri n. thành các file d li u ph c v cho quá trình s n xu t CAD/CAM chuyên d ng. d li u sang ñ nh d ng c a ph n m m CAM/CAD chuyên d ng. - Xây d ng ch t o v t th trên máy. - ng d ng k thu t t o lư i tam giác x p x m t cong tham s Bézier ñ tô bóng, hi n th và x lý. 6. C u trúc c a lu n văn N i dung lu n văn ñư c chia thành ba chương tương ng v i ba n i dung nghiên c u. Chương 1 trình bày BI U DI N Đ H A CÁC Đ I TƯ NG BA CHI U. Trong ph n này tìm hi u các phương pháp ñ mô hình
  4. 5 6 Chương 1 1.2.2.2. Bi u di n ñư ng cong tham s BI U DI N Đ H A Đ I TƯ NG BA CHI U Có ba cách ñ bi u di n m t ñư ng cong ñó là: tư ng minh, không tư ng minh và bi u di n tham s . M t cong cũng có th ñư c 1.1 Gi i thi u mô hình hóa ñ i tư ng bi u di n theo ba cách này. Mô hình b m t là m t kĩ thu t ñ h a ñư c s d ng ñ ñ nh D ng tư ng minh: z = f ( x, y ) nghĩa và mô t các b m t. Có 2 phương pháp cơ b n ñ mô hình hóa b m t 3D: D ng không tư ng minh: F ( x, y, z ) = 0 Lư i ña giác (Polygon Mesh ) Bi u di n dư i d ng tham s : P(u, v) = ( f 1 (u, v), f 2 (u, v), f 3 (u, v)) Các m t cong tham s (Parametric Patches) Tuy nhiên trong th c t , bi u di n dư i d ng tham s ñư c s 1.2. Các phương pháp bi u di n ñ i tư ng 3D d ng ph bi n nh t vì t m quan tr ng c a nó trong thi t k hi n ñ i. 1.2.1. Lư i ña giác Đư ng cong tham s b c 3 ñư c ñ nh nghĩa như sau: Lư i ña giác là m t t p các ña giác ñư c k t n i l i v i nhau 3 ñ t o nên các b m t. Ưu ñi m chính c a phương pháp này ñó là P(t ) = ∑ a i t i 0 ≤ t ≤1 (1.1) i =0 bi u di n x p x m t ñ i tư ng. Lư i ña giác là m t t p các c nh, ñ nh và các m t. Các m nh m t cong tham s Trong ñó: P(t) là m t ñi m trên ñư ng cong. Các m nh m t cong tham s b c ba ñư c ng d ng nhi u trong Phương trình trên có th khai tri n như sau: vi c mô t b m t các ñ i tư ng 3D. Trư c khi trình bày chi ti t P (t ) = a 3t 3 + a 2 t 2 + a1t 1 + a 0 (1.2) chúng ta kh o sát ñư ng cong tham s b c 3 trư c, vì ñây chính là ph n m r ng cho m t cong tham s b c 3. Phương trình này ñư c tách thành ba phương trình thành ph n: 1.2.2. Các m nh m t cong tham s x(t ) = a3 x t 3 + a 2 x t 2 + a1x t + a0 x Các m nh m t cong tham s b c ba ñư c ng d ng nhi u trong y (t ) = a3 y t 3 + a 2 y t 2 + a1 y t + a 0 y (1.3) vi c mô t b m t các ñ i tư ng 3D. Trư c khi trình bày chi ti t z (t ) = a3 z t 3 + a 2 z t 2 + a1z t + a 0 z chúng ta kh o sát ñư ng cong tham s b c 3 trư c, vì ñây chính là ph n m r ng cho m t cong tham s b c 3. 1.2.2.1. Đi m bi u di n ñư ng cong
  5. 7 8 1.2.2.3. Bi u di n m t cong tham s b c 3 1.5. K t chương M t cong này ph thu c vào hai tham s , u và v. Hai tham s Trong chương này trình bày các phương pháp bi u di n các ñ i này bi n ñ i ñ c l p trong ño n [a, b] (thư ng gi i h n trong ño n [0, tư ng trong không gian ba chi u mà y u t cơ b n ñ mô ph ng các 1]). ñ i tư ng 3D chính là ñư ng và m t cong tham s . V i m i c p (u,v), công th c trên t o ra ba t a ñ c a m t Chương 2 ñi m trên m t cong. PHƯƠNG PHÁP BI U DI N M T CONG TAM M t cong tham s b c 3 ñ nh nghĩa t a ñ c a các ñi m trên b GIÁC BÉZIER m t cong dư i d ng các phương trình 2 bi n (bicubic aquation). Các M c tiêu chính c a ñ h a máy tính là nh m hi n th m t b ñư ng bao c a m t cong là các ñư ng cong tham s b c 3 (cubic). m t b t kỳ sao cho gi ng th t và mư t nh t. Bư c ti p c n ñ u tiên M i ñư ng bao ñư c bi u di n b i các ñi m cu i c a nó và các m c tiêu này là tìm hi u v ñư ng cong. Khi chúng ta có ñư c gi i vector ti p tuy n t i các ñi m cu i và ñư c xác ñ nh b i phương trình thu t tính toán và hi n th m t ñư ng cong b t kì thì khi ñó chúng ta (1.7), ñư c vi t l i như sau: s m r ng gi i thu t ñó cho m t cong.  2 −2 1 1   P ( 0)  − 3 3 − 2 − 1  P (1)  2.1. Đư ng cong Bézier [ P (t ) = t 3 t 2 t 1 ] 0 0 1   0   P ' ( 0)  Ho c: Đư ng cong Bézier là m t ñư ng cong tham s P(t), ñó là m t    1 0 0 0   P ' (1)  hàm ña th c theo tham s t. B c c a ña th c ph thu c vào s lư ng P (t ) = [t ][ M ] H [G ] H ñi m ñi u khi n ñư c dùng ñ ñ nh nghĩa ñư ng cong. Phương pháp 1.3. Các phép bi n ñ i ba chi u này s d ng các ñi m ñi u khi n và t o ra m t ñư ng cong x p x . Các phép bi n ñ i hình h c cho phép d dàng thao tác trên Đa giác ñi u khi n (control polygon) c a ñư ng cong Bézier là các ñ i tư ng t o ra. Chúng làm thay ñ i mô t v t a ñ các ñ i ña giác thu ñư c khi các ñi m ñi u khi n ñư c n i l i theo th t v i tư ng, t ñó ñ i tư ng s ñư c thay ñ i v hư ng, kích thư c và hình các ño n th ng (xem hình 2.1) d ng. 1.4. Thư vi n h tr x lý ñ h a OpenGL OpenGL (Open Graphics Library) là m t tiêu chu n k thu t ñ h a nh m m c ñích ñ nh ra m t giao di n l p trình ng d ng ñ Hình 2.1. Đư ng cong tham s Bézier h a 3D ñư c phát tri n ñ u tiên b i Silicon Graphic, Inc.
  6. 9 10 2.1.1. Phương trình ñư ng cong tham s Bézier Trư ng h p 2: Cho 3 ñi m P0, P1 và P2 (hình 2.4), s d ng phép toán trung gian ñ xây d ng ñư ng cong n i suy gi a nh ng Phương trình ñư ng cong tham s Bézier: ñi m này theo các bư c sau: n P (t ) = ∑ Pi Bn,i (t ) , v i 0 ≤ t ≤ 1 i =0 Xây d ng 2 ñư ng th ng: L01 = t[ P0 , P1 ] và L12 = T [ P1 , P2 ] Trong ñó: V i 0 ≤ t 0 ≤ 1 , xét 2 ñi m P01 = t 0 [ P0 , P ] và 1 Pi : Là các ñi m ñi u khi n c a ñư ng cong P12 = t 0 [ P1 , P2 ] , n i 2 ñi m này b ng ñư ng th ng L012. Bn,i (t ) : Đư c g i là các hàm cơ s Bézier (Bézier Dĩ nhiên phương trình c a ñư ng th ng này là basic funtions) hay còn g i là các ña th c Berntein v i n là t[ P01 , P12 ] và b ng: s b c L012 = t[ P01 , P12 ] = t[t[ P0 , P1 ], t[ P1 , P2 ]] = t[ P0 , P1 , P2 ]  n  n Tương t như v i t0, ch n ñi m P012 = t 0 [ P0 , P , P2 ] trên Bn,i (t ) =  t i (1 − t ) n−i , trong ñó   = n! 1 i  i  i!(n − i )! ñư ng L012. Đi m này có th ñư c bi u di n như sau: là các h s nh th c P012 = t 0 [ P0 , P1 , P2 ] = t 0 [ P01 , P12 ] = t 0 [t 0 [ P0 , P1 ], t 0 [ P1 , P2 ]] Đ minh h Ba cho) n  2 t 0 (1ñi t m −0 = (khi t n),, các tr ng s = 2 (3 − ) 2 ñi u 1 − ) 2 2,0 (t =  0    Bây gi cho t0 thay ñ i t 0 ñ n 1. Đi m P012 trư t d c theo Bn,i (t ) s là:   ñư ng th ng L012, và c l n lư t trư t d c theo ñư ng th ng L01 và  2 B2,1 (t ) =  t1 (1 − t ) 2−1 = 2t (1 − t ), 1 L12 cho ñ n ñi m k t thúc. Đư ng cong này ñư c mô t b i ñi m   Và ñư ng P (t ) =s(1 là:  2  0 + 2t (1 − t ) P + t 2 P2 cong − t ) 2 P P012, vì nó trư t cho nên nó là ñư ng cong n i suy c a 3 ñi m P0, P1 B2,2 (t ) =  t 2 (1 − t ) 2−2 = t 2 1  22 2 ( P , P , P )T và P2 mà chúng ta c n tìm. Kí hi u ñư ng cong này là P2(t). D dàng = ((1 −t )  ,2t (1 − t ), t 0 1 2 tính bi u th c c a ñư ng cong b ng cách s d ng ñ nh nghĩa t[Pi,Pj]: Đây chính là ñư ng congBézier b c 1  P0  1 − 2 2.   P2 (t ) = t[ P0 , P , P2 ] = (t 2 , t ,1) − 2 2 0  P  1   1 2.1.2. Tính ch t ñư ng congBézier   = t[t[ P0 , P ], t[ P , P2 ]]  1 0 0  P2    1 1 2.1.3. Xác ñ nh m t ñi m trên ñư ng cong tham s Bézier = t[tP + (1 − t ) P0 , tP2 + (1 − t ) P ] 1 1 = t[tP2 + (1 − t ) P ] + (1 − t )[tP + (1 − t ) P0 ] 1 1 Thu t toán xây d ng m t ñi m trên ñư ng cong Bézier do Casteljau phát tri n vào năm 1959 d a trên phương pháp hoàn toàn = P0 (1 − t ) 2 + 2 P t (1 − t ) + P2 t 2 1 khác so v i Bézier. Phương pháp này s d ng n i suy tuy n tính Do ñó P2(t) là ñư ng cong Bézier v i 3 ñi m. (linear interpolation) và phép toán trung gian (mediation operator)
  7. 11 12 2.2. M t cong t giác Bézier cong Bézier này trong không gian s t o ra m t m t cong. Khi u thay ñ i, các ñi m Pj(u) s thay ñ i trên m t ñư ng cong nào ñó. N u cho Phương trình tham s c a m t m t có d ng là m t phương các ñư ng cong này chính là các ñư ng cong Bézier, m i ñư ng trình tham s hai bi n P(u, w) và m t ñi m b t kì trên m t s ñư c cong d a trên (n + 1) ñi m ñi u khi n thì: bi u di n dư i d ng P(u, w) = (x(u, w), y(u, w), z(u, w)). n 2.2.1. M t cong tham s Pj (u ) = ∑ Pi , j Bin (u ) n m i =0 Bi u th c P(u, 0.2) (trong ñó w là h ng s c ñ nh, u là bi n) Lúc này: P (u , v) = ∑∑ P i =0 j =0 i, j Bin (u ) B m (v) j (2.3) ch ph thu c vào m t tham s và do ñó là m t ñư ng cong trên m t Ta cũng g i ñây là d ng tích Tensor c a m t cong t giác cong. B n ñư ng cong P(u,0), P(u, 1), P(0, w) và P(1, w) là các Bézier. ñư ng cong biên c a m t cong. Vì có b n ñư ng cong như v y cho Tương t chúng ta có th ñ nh nghĩa m t m t cong b ng tích nên m t cong c a chúng ta là m t m nh có hình dáng x p x hình ch tensor c a hai ñư ng cong nh t. 2.2.3. Tính ch t c a m t cong Bézier B n t a ñ P(0,0), P(0,1), P(1,0) và P(1,1) là các ñi m góc c a m nh m t cong và ñư c kí hi u là Pij. Chúng ta nói r ng ñư ng cong 2.3. M t cong tam giác Bézier P(u, 0.2) n m trên m t cong này theo hư ng tham s u. Nó là m t 2.3.1. Phương trình m t cong tam giác Bézier ñư ng cong cùng tham s (isoparametric curve). Tương t b t c M t cong tam giác Bézier ñư c ñ nh nghĩa như sau [6][7]: ñư ng cong P(u0, w) mà trong ñó có u0 c ñ nh n m theo hư ng w thì n! i j k ñó là m t ñư ng cong cùng tham s . Đây là hai hư ng chính c a m t P(u, v, w) = ∑P i + j + k =n ijk i! j!k! u v w = ∑ Pijk Bijk (u, v, w) n (2.5) m nh m t cong hình ch nh t. 2.2.2. M t cong t giác Bézier V i u + v + w = 1 ; i, j, k = 1 và i + j + k = n Xét ñư ng cong Bézier như là m t hàm tham s theo v và có Trong ñó: các ñi m ñi u khi n thay ñ i theo u. Ta có công th c: Pijk: Các ñi m ñi u khi n m P(u, v) = ∑ Pj (u ) B m (v) j (2.2) Bijk (u, v, w) = n n! i j k u v w là ña th c Bernstein ba j =0 i! j!k! bi n. Lúc này, khi u thay ñ i ta s có các ñi m ñi u khi n thay ñ i theo, ñư ng cong Bézier cũng thay ñ i. S bi n thiên c a các ñư ng M t tam giác Bézier (Triangular Bézier Patches) d a trên các ñi m ñi u khi n Pijk ñư c s p x p theo hình d ng x p x tam giác
  8. 13 14 (hình 2.8). M i ñi m ñi u khi n d ng 3D ñư c g n 3 ch m c i, j, k 2.3.2. Tính ch t c a m t cong tam giác Bézier sao cho 0
  9. 15 16 vi c kh o sát ñư ng cong ti p t c m r ng sang m t cong, mà c th Trong ph m vi lu n văn này tôi ñ xu t s d ng gi i thu t De là m t cong tham s Bézier và các tính ch t quan tr ng c a ñư ng và Casteljau ñ tính toán các ñi m và chia lư i tam giác làm tr ng tâm m t cong tham sô Bézier. Bi u di n m t cong tham s dư i hai d ng: cho nghiên c u. Trong quá trình th c hi n lu n văn, tôi cũng ñã tham d ng tích Tensor hay còn g i là m t t giác và bi u di n m t tam kh o r t nhi u tài li u ti ng nư c ngoài, trong ñó n tư ng v i k t giác. Tr ng tâm c a lu n văn này cũng chính là nghiên c u v m t qu do Vlachos[12] ñ xu t năm 2001 s d ng Point-Normal Patches tam giác Bézier, chính là n n t ng lý thuy t dùng ñ tính toán, t o cũng là m t d ng ñ c bi t c a m t cong tam giác Bézier nh m m c lư i trong chương sau. Trong chương này tôi cũng ñ c p ñ n tính ñích c i ti n lư i giúp hi n th ñ i tư ng trông mư t hơn và d dàng liên t c c a ñư ng và m t cong trên cơ s toán h c, c th là m t tích h p vào ph n c ng ñ h a. Đây cũng là hư ng nghiên c u ti p cong tam giác. Đây chính là y u t ñ ghép n i các ñư ng và m t theo c a tôi trong tương lai. cong l i v i nhau sao cho liên t c và mư t. 3.2. T o lư i x p x m t cong tam giác Bézier 3.2.1. Gi i thu t xác ñ nh m t ñi m trên m t tam giác Bézier Chương 3 Phương pháp này còn g i là gi i thu t De Casteljau hay còn XÂY D NG M T LƯ I TAM GIÁC X P X M T g i là “xây d ng khung ñi u khi n”[5],[6],[7]. CONG THAM S BÉZIER Các ña th c Bernstein 3 bi n là cơ s c a d ng m t cong ñư c 3.1. Gi i thi u vi t l i như sau [6]: i + j +k =n Lý do ñ ng sau c a vi c lư i hóa các m t cong tương ng ñó (i + j + k )! i j k i + j + k = n n! i i k là tăng thêm chi ti t cho các b m t giúp hi n th th t hơn trên màn Bin, j , k (u, v, w) = ∑ i, j ,k ≥0 i! j!k! uv w = ∑ i , j , k ≥ 0 i! j!k! uvw hình ñ h a, khi c n thi t có th d dàng thi t k , tính toán trên lư i, Đa th c này th a mãn quan h ñ quy: lo i b nh ng b m t có góc c nh thô gây nh hư ng ñ n vi c hi n th tô bóng. M c dù có nhi u gi i phương pháp và gi i thu t khác Bin, j ,k (u , v, w) = uBin−−1 j ,k (u , v, w) + vBin, −−1,k (u , v, w) + wBin −,1k −1 (u , v, w) 1, j 1 ,j nhau ñ lư i trên ñ i tư ng m t tam giác Bézier. Tuy nhiên không Đây là cơ s c a gi i thu t De Casteljau ñ i v i m nh m t cong tam ph i t t c gi i thu t ñ u t t như nhau. Giá tr c a gi i thu t ph giác Bézier. thu c vào t ng ng d ng c th và m c ñích s d ng. Nhưng tính Gi i thu t này b t ñ u b ng các ñi m ñi u khi n ban ñ u ch t quan tr ng khi l a ch n gi i thu t ñó là tính hi u qu v tính 0 P ñư c ñánh nhãn Pijk . Ngư i s d ng ch n m t b 3 (u,v,w) sao toán, lưu tr trong b nh và x p x t t trên hình d ng c a ñ i tư ng cho u + v + w = 1 và th c hi n n bư c ñ tính các ñi m trung gian ban ñ u. Pi ,r j , k v i r = 1,…,n và i + j + k = n – r.
  10. 17 18 Pi ,r j , k = uPi r −,1j , k + vPi ,r j−+1, k + wPi ,r j−,1 +1. +1 1 k 030 n Bư c cu i cùng là tính ñi m ñơn P 000 mà cũng là ñi m ñư c 020 120 t o ra b i b 3 (u,v,w) ñã ch n trên m t cong tam giác Bézier. 021 011 110 Minh h a gi i thu t này v i n = 3. Có 10 ñi m ñi u khi n. Gi 012 111 210 s r ng ñã ch n ra các giá tr thích h p cho ba tham s (u,v,w), bư c 002 101 200 003 300 ñ u tiên c a gi i thu t là t o ra 6 ñi m trung gian v i n = 2 (hình 3.4) 102 201 P002 = uP 0 + vP012 + wP003 , 1 102 0 0 P1 = uP201 + vP 0 + wP 0 , 101 0 111 102 P200 = uP300 + vP210 + wP201 , 1 0 0 0 P011 = uP 0 + vP021 + wP012 , 1 111 0 0 010 P1 = uP210 + vP 0 + wP 0 , 110 0 120 111 P020 = uP 0 + vP030 + wP021. 1 120 0 0 001 100 Bư c th 2 t o ra 3 ñi m ñi u khi n v i n =1 P001 = uP1 + vP011 + wP002 , 2 101 1 1 Hình 3.4. Minh h a gi i thu t De Casteljau trong m t m nh tam giác P = uP 2 100 1 200 + vP + wP , 1 110 1 101 Bézier P010 = uP1 + vP020 + wP011. 2 110 1 1 Gi i thu t có th ñư c tóm t t như sau: Và bư c th 3 t o ra ñi m ñơn: + Cho t p các ñi m ñi u khi n Pi,j,k v i i + j + k = n P000 = uP 2 + vP010 + wP011 3 100 2 1 + Tìm P(u, v, w) v i v + u + w = 1 Đây là ñi m tương ng v i t a ñ (u,v,w) trên m t cong tam giác ñư c xác ñ nh b i 10 ñi m ñi u khi n ban ñ u. Pi ,0j , k (u, v, w) = Pi , j ,k Pi ,r j , k (u, v, w) = u.Pi +1,1j ,k (u, v, w) + vPi ,rj−+1,k + wPi ,r j−,1 +1 (u, v, w) r− 1 k cho r = 1,…n và i + j + k = n – r + P(u , v, w) = P0n0, 0 (u , v, w) ,
  11. 19 20 Đo n mã mô t gi i thu t: lư i tam giác x p x . M c tiêu c a chương trình là bi u di n m t ñ i tư ng ñư c xây d ng d a trên m t cong tam giác Bézier. begin D li u ñ u vào c a chương trình for r = 1 to m do - File d li u ch a t a ñ các ñi m ñ nh for i = 0 to m - l do - Đ i tư ng ñư c thi t k là m t cong for j = 0 to m - i- r do K t qu x lý k = m – i – j - r - Hi n th m t cong Bézier Pi ,r j , k (u, v, w) = u.Pi +1,1j ,k (u, v, w) + vPi ,rj−+1,k + wPi ,r j−,1 +1 (u, v, w) r− 1 k - Tô màu cho ñ i tư ng endfor - Cho phép hi n th ñ i tư ng nhi u góc ñ khác nhau endfor - Có th b t t t hi n th khung lư i ñi u khi n endfor P(u, v, w) = P0n0, 0 (u, v, w) , - Xoay ñ i tư ng theo ý mu n. - Các tính năng khác end 3.3.2. Thi t k chương trình 3.2.2. Gi i thu t Subdivision Bư c 1: Đ c file d li u (các ñ i tư ng v i các ñi m ñi u 3.2.3. Gi i thu t v i Point Normal – Triangles khi n ñư c thi t k chi ti t và sau ñó k t xu t ra file) 3.3. Phân tích và xây d ng chương trình Bư c 2: T o lư i ñi u khi n cho các ñi m d li u 3.3.1. Phân tích yêu c u Bư c 3: Tính các tham s u, v Trong ph m vi ñ t ra, lu n văn th c hi n xây d ng chương Bư c 4: Tính các ñi m trên m t Bézier trình cho phép t o ñ i tư ng x p x b m t cong tham s Bézier, chương trình cho phép ñ c file BV, m t ñ nh d ng file dùng ñ lưu Bư c 5: Mô ph ng ñ i tư ng trên màn hình, ngư i s tr các t a ñ ñi m ñi u khi n c a m t ñ i tư ng. T khung lư i d ng, xoay ñ i tư ng theo các hư ng khác nhau ñ xem, xem ñi u khi n ban ñ u, ñ bi u di n m t m t cong tham s Bézier nh m khung lư i g c ban ñ u. ph c v hi n th , x lý nh, k t xu t ra CAD/CAM, mô hình hóa ñ i tư ng thì ta ph i bi u di n m t m t cong tham s thông qua m t m t
  12. 21 22 3.3.3. K t qu th c hi n chương trình 3.4. K t chương Chương trình ñư c xây d ng trên môi trư ng Visual Studio Trong chương này tôi ñã trình bày chi ti t v m t tam giác C++ 2008 d a trên ki n trúc Document/View c a MFC v i thư vi n Bézier, phương trình ñ nh nghĩa, các cơ s toán h c ñ chuy n ñ i ñ h a OpenGL. Chương trình ch y trên h ñi u hành Window 7. m t b m t tham s sang d ng lư i ñi m tam giác theo gi i thu t de M t s k t qu minh h a Casteljau nh m m c ñích tính toán, làm c u n i cho vi c k t xu t ph c v cho quá trình CAD/CAM, dùng ñ tô bóng b ng các gi i thu t tô bóng hi n có giúp cho ñ i tư ng trong th t và mư t hơn. Chương này cũng gi i thi u khái quát m t s phương pháp chia nh lư i tam giác. T ñó tôi ñ xu t phương pháp t o lư i tam giác b ng các tam giác pháp tuy n PN-triangle v i các cơ s toán h c d a trên k t qu ñ xu t c a Vlachos Alex và các c ng s trong m t bài báo khoa h c nh m c i ti n ch t lư ng hình nh các ñ i tư ng 3D. Hình 3.14. (a) Lư i ñi u khi n, (b) Đ i tư ng m t Bézier v i khung lư i (c) M t tam giác Bézier Hình 3.15. Đ i tư ng ñư c xem t nhi u hư ng khác nhau Hình 3.16. Hi n th m t s ñ i tư ng khác nhau
  13. 23 24 K T LU N VÀ HƯ NG PHÁT TRI N làm m n và tô bóng sao cho ñ p và gi ng th t nh t v n còn là m t V i vi c phát tri n ngày càng nhanh c a ñ h a máy tính thì v n ñ l n v n còn c n có nhi u nghiên c u trên th gi i. vi c nghiên c u và ng d ng nó cho t ng lĩnh v c là m t xu hư ng Chương trình Demo v i các k t qu th c nghi m c a lu n văn t t y u. Trong quá trình tìm hi u, nghiên c u m t Bézier và lu n văn m i ñưa ra ñư c nh ng ch c năng có tính ch t minh ch ng cho lý ñã có ñư c nh ng k t qu kh quan. Trư c tiên ñó là k t qu v m t thuy t mà chưa có s ñ u tư nhi u cho m t ng d ng th c ti n hơn. lý thuy t, nghiên c u ñã nêu ra ñư c phương pháp bi u di n ñ i Tuy nhiên trong tương lai ñ tài này có th ti p t c ñ u tư, phát tư ng 3D s d ng m t cong Bézier v i các cơ s toán h c dùng ñ tri n theo các hư ng phân tích sâu hơn v k thu t giúp cho vi c hi n bi u di n, cách xây d ng và tính toán t o lư i x p x m t cong th ñ i th ñ i tư ng tr nên th t và mư t hơn d a trên tính toán các Bézier. pháp tuy n PN-triangles nh m h tr cho các ng d ng x lý ñ h a Hơn n a, vi c ñi sâu vào nghiên c u phương pháp tính toán, 3D, ñ c bi t là cho ba v n ñ chính ñư c ng d ng r t l n ñó là thi t lư i hóa tam giác ñ i tư ng m t cong Bezier là m t bư c quan tr ng k CAD/CAM, mô ph ng trong y khoa và trong lĩnh v c gi i trí nh t trong mô hình hóa, quá trình x lý tô bóng, k t xu t ñ i tư ng game, công nghi p làm phim ho t hình v i các k x o ñ h a 3D. 3D. Phương pháp này ñã cho th y ñư c kh năng và hi u qu s Trên ñây là toàn b nghiên c u v lý thuy t và các ng d ng d ng cao trong các ng d ng x lý ñ h a trên máy tính và ñ c bi t c a các m t cong tham s Bézier. Nghiên c u này d a trên lý thuy t sau này ñư c ng d ng trong lĩnh v c y khoa ch n ñoán hình nh, v các ñư ng và m t cong tham s trong không gian 3D và ñã ñư c ph u thu t ch nh hình d a trên các mô hình 3D, các mô hình th c t i ng d ng thành công nhi u lĩnh v c khác nhau trong ñ i s ng. o. Ti p theo, n i dung lu n văn trình bày nh ng phương trình toán h c và phương pháp tính ñ làm sao chia nh m t lư i tam giác thành các tam giác nh hơn nh m giúp cho vi c hi n th tô bóng ñ i tư ng 3D t t hơn và hi u qu v ph n c ng b ng các tam giác PN- Triangles. Sau cùng là k t qu th c nghi m v i chương trình Demo cho n n t ng lý thuy t ñã nghiên c u v i s k t h p h tr c a các thư vi n trong OpenGL. Bên c nh nh ng k t qu ñ t ñư c thì nghiên c u này v n chưa có s k t n i v i các k thu t làm th nào ñ hi n th b m t sao cho mư t và th t nh t, tránh ñư c nh ng gh gh . B n thân các k thu t
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2