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

Bài giảng Đồ họa máy tính: Chương 7 - ThS. Trần Thị Minh Hoàn

Chia sẻ: Caphesuadathemduong | Ngày: | Loại File: PDF | Số trang:26

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

Bài giảng Đồ họa máy tính: Chương 7 Đường và mặt cong tự do trong không gian ba chiều cung cấp cho người học những kiến thức như: Mô hình hóa ba chiều; Biểu diễn đường cong tự do; Đường cong Bézier; Đường cong Bézier bậc 3 (cubic); Dạng ma trận đường cong Bézier;...Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Đồ họa máy tính: Chương 7 - ThS. Trần Thị Minh Hoàn

  1. Chương VII: Đường và mặt cong tự do trong không gian ba chiều Mô hình hóa ba chiều  Nhiệm vụ  Biểu diễn các đối tượng rắn để hiển thị  Trong nhiều trường hợp có thể biểu diễn chính xác bề mặt đối tượng: khối hộp, hình trụ, hình cầu  Với khối rắn bất kỳ phải sử dụng phương pháp xấp xỉ và nội suy  Hai giải pháp chính  Xây dựng mô hình đường cong, mặt cong có dạng tự do để đạt độ trơn cao nhất  Xấp xỉ mặt cong bởi tập đa giác (khảm): chia bề mặt đối tượng thành nhiều đa giác con 1
  2. Biểu diễn đường cong tự do  Lựa chọn cách biểu diễn 2
  3. Biểu diễn đường cong tự do  Lựa chọn cách biểu diễn  Đường cong bất kỳ có thể biểu diễn bới ma trận điểm  Cần số lượng điểm vô cùng lớn để biểu diễn chính xác hình dạng  Sử dụng hàm đa thức để thể hiện hình dạng đường cong  Dạng tổng quát của hàm đa thức n n n 1 p( x)  an x  an1 x  ...  a1 x  a0   ai x i i 0 n – nguyên dương, a0, a1, ..., an là số thực  Đa thức thuận tiện cho tính toán bằng máy tính  Trong đồ họa đòi hỏi xác định tiếp tuyến, pháp tuyến cho đường cong. Đa thức cho khả năng dễ dàng tính vi phân. 3
  4. Biểu diễn đường cong tự do  Dạng thông dụng biểu diễn đường cong trong mô hình hóa hình học: Dạng tham số  Đường cong được xấp xỉ bởi đường cong đa thức liên tục từng phần  Mỗi đoạn đường cong được xác định bởi ba hàm x, y và z x = x(t), y = y(t) và z = z(t)  Véctơ vị trí của các điểm trên đường cong sẽ là: p(t) = (x(t), y(t), z(t))  Hai phương pháp xấp xỉ thông dụng nhất trong các hệ thống CAD hiện nay là Bézier và B-spline 4
  5. Đường cong Bézier  Pierre Bézier (1960, Renault), P. de Casteljau (Citroen)  Đường cong Bézier bậc n được xác định bởi n+1 điểm điều khiển là phương trình tham số có dạng sau: n P (t )   Vk Bk , n (t ), 0  t 1 k 0 n n! Bk , n (t )   (1  t ) n  k t k  (1  t ) n  k t k k  k!( n  k )! V0, V1...Vn - các điểm điều khiển Bk,n(t) – hàm liên kết trơn (là đa thức Bernstein, hàm trộn) Bk ,n (t )  0, với víi mọi mäi k và 0  t  1 n B k 0 k ,n (t )  1 0  t  1 5
  6. Đường cong Bézier n  Từ phương trình P (t )   Vk Bk ,n (t ), 0  t 1 k 0  Ta có hệ phương trình tham số n n n x (t )   x k Bk , n (t ) y (t )   y k Bk , n (t ) z (t )   z k Bk , n (t ) k 0 k 0 k 0  Đường cong Bézier tuyến tính (linear) có dạng P(t) = (1-t) V0 + t V1  Đường cong Bézier bậc 2 (quadratic) có dạng P(t) = (1-t)2V0 + 2(1-t)tV1+t2V2 6
  7. Đường cong Bézier bậc 3 (cubic)  Đường cong Bézier bậc 3 được xác định bởi 4 điểm: Điểm bắt đầu (anchors) điểm kết thúc, hai điểm điều khiển (handles) Từ n P (t )   Vk Bk ,n (t ), 0  t 1 k 0 Ta có V1 V2 P(t)=V0B0,3+V1B1,3+V2B2,3+V3B3,3 3! 0 V0 B0 ,3  t (1  t ) 3  (1  t ) 3 0!3! 3! 1 V3 B1,3  t (1  t ) 2  3t (1  t ) 2 1!2! 3! 2 B2 ,3  t (1  t )  3t 2 (1  t ) 2!1! [(1-t)3]+[3t(1-t)2]+[3t2(1-t)]+t3=1 3! 3 B3,3  t (1  t ) 0  t 3 P(t) = (1-t)3V0 + 3(1-t)2tV1+3(1-t)t2P2+t3V3 3!0! 7
  8. Dạng ma trận đường cong Bézier  Với đường cong bậc 3 V0  V   P (t )  (1  t ) 3 3t (1  t ) 2 3t 2 (1  t ) t  3  1 V2    V3  V0  V   P (t )  (1  3t  3t 2  t 3 ) (3t  6t 2  3t 3 ) (3t 2  3t 3 )  t3  1  V2    1  V0  V3  1 3  3  3 6 3 0 V1   P (t )  t 3 t2 t 1   3 3 0 0 V2     1 0 0 0 V3  P(t) = [t] [M]B [V]B 8
  9. Thuật toán vẽ đường cong Bézier // n+1 số lượng các điểm điều khiển //Pi điểm điều khiển thứ i có các tọa độ x, y, z là (Pix, Piy, Piz) BesierCurve() begin n for i=0 to n do Nhập điểm điều khiển Pi  P ( t )  Vk Bk , n ( t ) k 0 next i n! for t=0. to 1. insteps of 0.05 do B k , n (t )  (1  t ) n  k t k x=y=z=0. k !( n  k )! for i=0 to n do B=Blend(i, n, t) x=x+Pix*B Blend (i, n, t) y=y+Piy*B z=z+Piz*B begin next i blend=GiaiThừa(n)/(GiaiThừa(i)*GiaiThừa(n-i)) if (x, y, z) là điểm bắt đầu blend=blend*(t)i*((1-t)n-i) then MoveTo (x, y, z) else LineTo(x, y, z) return (blend) endif end next t end 9
  10. Thí dụ đường cong Bézier Cho hai đường cong Bézier P, Q xác định bởi trình tự các điểm sau: P: A(2, 3, 4), B(3, 1, 5), C(x, y, z), D(3, 4, 3) Q: D(3, 4, 3) , E(2, 6, 0), F(5, 7, 5), G(5, 2, 3) Hãy thiết lập điều kiện sao cho x, y, z bảo đảm tính liên tục C1.  P và Q là các đường cong bậc 3 Q(t)=(1-t)3V0+3t(1-t)2V1+3t2(1-t)p2+t3V3 V0  V   Q (t )  (1  t ) 3 3t (1  t ) 2 3t 2 (1  t )  t3  1  V2    V3   Véctơ tiếp tuyến (lấy đạo hàm theo t) 10
  11. Thí dụ đường cong Bézier  Tìm véctơ tiếp tuyến (lấy đạo hàm theo t) V0  V   Q ' (t )   3 (1  t ) 2 3(3t 2  4t  1)  3t (3t  2) 3t  2  1 V2    V3   Phân đoạn thứ nhất tại cuối đường cong, với u=1, P’(u) và phân đoạn thứ 2 tại đầu đường cong, với t=0, Q’(0)  A D B E  P ' (1)  0 0  3 3    3( D  C ) Q ' (0)   3 3 0 0    3( E  D ) C  F      D G   Để đảm bảo tính liên tục thì P’(u) tại u=1 phải bằng Q’(t) tại t=0 3(D-C)=3(E-D) x=4, y=2, z=6 11
  12. Bài tập 1. Một đường cong Bézier bậc 3 có bốn điểm điều khiển (0, 0, 0), (4, 2, 2), (8, 6, 4), (12, 0, 0). Hãy xác định tiếp tuyến của đường cong tại t=1/4. 12
  13. Biểu diễn mặt cong tự do  Phương pháp biểu diễn đường cong là công cụ hữu hiệu để biểu diễn đường cong như Hermite, Bézier, B-Spline...  Đường cong  Cần 1 biến tham số (1 bậc tự do) để biểu diễn  Mặt cong P(t) = [x(t), y(t), z(t)] 0 t 1  Cần hai biến tham số P(s,t) = [x(s,t), y(s,t), z(s,t)] 0 t 1, 0 s 1
  14. Mặt cong Bézier V0, V0,  Mặt cong Bézier được định nghĩa từ 2 3 V0, phương trình đường cong đơn giản 1 V1, 1 V3,  Tích tensơ áp dụng cho hai hướng s và t t 3 V1,  Xác định các điểm trên mặt cong V0, 0 0 s V2, 0 V3, 0 n m P ( s, t )    Vi , j Bi , n ( s ) B j ,m (t ) 0  s, t  1 i 0 j 0 Vi,j - các điểm điều khiển, tổng số điểm điều khiển là (m+1)x(n+1); Bi,n(s) và Bj,m(t) - các hàm liên kết trơn Bernstein theo các hướng s và t.
  15. Mặt cong Bézier  Tính chất  Mặt cong có dạng tổng quát theo điểm điều khiển  Nằm trong miền bao lồi của các điểm điều khiển  Các điểm góc mặt cong trùng với các điểm điều khiển tại góc  Biểu diễn dạng ma trận P(s,t) = [s][M]B[V]B [M]BT[t]T  Ma trận chuyển vị [A]T của ma trận [A]:  Với mỗi phần tử aij của [A] thì phần tử tương ứng của [A]T là aji.  Ma trận chuyển vị của ma trận hàng là ma trận cột  [A]-1 là ma trận nghịch đảo của [A]: [A][A]-1=I, (I là ma trận đơn vị)
  16. Mặt cong Bézier  Biểu diễn dạng ma trận của mặt cong Bézier kép  1 3  3 1   V0,0 V0,1 V0,2 V0,3   3 6 3  V1,3  0   V1,0 V1,1 V1,2  P ( s, t )  s 3 s2  s 1  3 3 0 0   V2,0 V2,1 V2,2 V2,3     1 0 0 0   V3,0 V3,1 V3,2 V3,3   1 3  3 1  t 3   3 6 3   0  t 2  P( s, t )    3 3 0 0  t     1 0 0 0  1   Để biểu diễn mặt cong Bézier kép cần đến 16 điểm điều khiển
  17. Thí dụ ứng dụng mặt cong Bézier  Yêu cầu Một kết cấu mái nhà dạng nửa hình trụ rỗng. Hãy tạo lưới điều khiển Bézier để xấp xỉ mặt cong này  Giải pháp  Xác định lưới điều khiển để tạo ra các điểm mặt cong dọc theo mặt cắt ngang nửa hình trụ.  Di chuyển các điểm này dọc theo trục z với khoảng cách đều nhau  Khảo sát mặt cắt tại z=0: chọn 5 điểm trên cung tròn sau: P0(20, 0), P1(102, 102), P2(0, 20), P3(-102, 102), P4(-20,0) P2 y y P3 P1 z 100 t P4 20 P0 x x
  18. Thí dụ ứng dụng mặt cong Bézier  Để nội suy P0,...,P4 cần 5 điểm điều khiển Bézier: V0, V1, V2, V3, V4. 4 P (t )   B4 ,i (t )Vi i 0  Chọn ti cho t trong khoảng [0,1]: t0=0.0, t1=0.25, t2=0.5, t3=0.75, t4=1.0  Viết biểu thức dưới dạng đồng nhất  B40 (t 0 ) B41 (t 0 ) B42 (t 0 ) B43 (t 0 ) B44 (t 0 )  V0   B (t ) B41 (t1 ) . . .  V1   40 1 P 5 x 3  B 5 x 5 V 5 x 3  . . . . .  V2      . . . . .  V3   B40 (t 4 ) . . . B44 (t 4 )  V4   n n! 4! Bni (t )   t i (1  t ) n  i  t i (1  t ) n  i B41 (t1 )  t 1 (1  t ) 4 1  4 x 0.25 x (0.25) 3  0.4218 i i!( n  i )! 1!( 4  1)!
  19. Thí dụ ứng dụng mặt cong Bézier  Tính cho mọi phần tử còn lại của [B]  1 0 0 0 0  0.3164 0.4218 0.2109 0.0469 0.0039    V 5 x 3  B 51x 5 P 5 x 3 B5 x 5  0.0625 0.25 0.375 0.25 0.0625    0 . 0039 0 .0468 0 . 2812 0 . 4218 0 .3164   0 0 0 0 1  -1 V0   1 0 0 0 0   20 0 1  20 0 1 V  0.3164 0.4218 0.2109 0.0469 0.0039   10 2 10 2 1  21.05 15.44 1  1       V2   0.0625 0.25 0.375 0.25 0.0625  0 20 1   - 0.1 32.61 1         V    3 0 . 0039 0 . 0468 0 . 2812 0 . 4218 0 . 3164    10 2 10 2 1   - 21.05 15.44 1  V4   0 0 0 0 1    20 0 1  - 20 0 1
  20. Thí dụ ứng dụng mặt cong Bézier  Bổ sung các điểm điều khiển đường cong trên lưới Bézier bằng cách thay đổi giá trị z từ 0 đến 100 với khoảng cách đều 20  Lưới điều khiển Bézier với 30 điểm sẽ là  (20,0,0) ( 20,0,20) (20,0,40) . . ( 21.05,15.44,0) ( 21.05,15.44,20) . . .   (0.1,32.61,0) . . . .    . . . . .  (20,0,0) ( 20,0,20) ( 20,0,40) . .
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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