Bài giảng Đồ họa máy tính: Đường và mặt cong - Ngô Quốc Việt

43 27 0
Bài giảng Đồ họa máy tính: Đường và mặt cong - Ngô Quốc Việt

Đ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

Bài giảng Đồ họa máy tính: Đường và mặt cong cung cấp cho người học những kiến thức như: Đường cong Bezier; Đường bậc 3, B-splines; Mặt cong;... Mời các bạn cùng tham khảo!

ĐƯỜNG VÀ MẶT CONG NGÔ QUỐC VIỆT 2009  Đường cong Bezier  Thuật giải Casteljau  Đa thức Bernstein     Đường bậc 3, B-splines Mặt cong Hỏi đ|p B{i tập Mục tiêu: x}y dựng đường cong thông qua c|c điểm điều khiển  Do Pierre Bezier x}y dựng (trong thời gian l{m việc Renault)  Tương tự đường Hermit trực quan  p1 = x1,y1 p2 = x2,y2 p(t) = Si=0 Bi(t) pi Bi(t) = (3i) ti (1-t)3-i p0 = x0,y0 p3 = x3,y3 p(t) = (1-t)3p0 + 3(1-t)2tp1 + 3(1-t)t2p2 + t3p3 x(t) = (1-t)3x0 + 3(1-t)2tx1 + 3(1-t)t2x2 + t3x3 y(t) = (1-t)3y0 + 3(1-t)2ty1 + 3(1-t)t2y2 + t3y3 • Đường Bezier có bậc • Bậc đường Bezier=số điểm điều khiển – • Ví dụ: – Bậc (quadratic): CPs – Bậc (cubic): CPs – Bậc (quadratic): CPs • C}u hỏi: – L{m c|c n{o thêm điểm điều khiển v{o đường Bezier x|c định? – L{m c|ch n{o chia đường cong Bezier th{nh hai đoạn cong Bezier? • X}y dựng điểm đường cong p01 = (1-t) p0 + t p1 p12 = (1-t) p1 + t p2 p23 = (1-t) p2 + t p3 p012 = (1-t) p01 + t p12 p123 = (1-t) p12 + t p23 p0123 = (1-t) p012 + t p123 • Chia đường cong p0123 – p0 p01 p012 p0123 – p0123 p123 p23 p3 p1 p12 p2 p012 1-t p123 p0123 p01 t p23 p0 p3 • Lặp lại với c|c gi| trị t để có đường Bezier • Dùng để tăng điều khiển • Bắt đầu với S pi (ni) ti (1-t)n-i = S qi (ni+ 1) ti (1-t)n+1-i p1 • X|c định qi (t+(1-t)) S pi (ni) ti (1-t)n-i 1/4 = S pi (ni) (ti (1-t)n+1-i + ti+1 (1-t)n-i) q1 • So s|nh c|c hệ số 3/4 qi(ni+ 1) = pi(ni) + pi-1(ni-1) qi = (i/(n+1))pi-1 + (n+1-i/(n+1))pi 1/2 q2 1/2 p2 1/4 q3 3/4 p0=q0 p3=q4 • Dạng tổng qu|t với • Cơng thức x|c định lớp c|c đường cong Bezier Hệ số c|c điểm điều khiển l{ tập c|c h{m gọi l{ Bernstein polynomials  Ở bậc (4 điểm điều khiển), ta có:  • Bậc Bin(t) = (ni) ti (1-t)n-i (ni) = n!/(i!(n – i)!) = (ni- 1) + (ni 11) • Ph}n hoạch đơn vị B03(t) B33(t) B13(t) B23(t) 1/3 2/3 – Tổng với t [0,1] Si=0 n Bin(t) = • Đa thức bậc cao x}y dựng từ c|c đa thức bậc thấp Bin(t) = (ni) ti (1-t)n-i = (ni- 1) ti (1-t)n-i + (ni 11) ti (1-t)n-i = (1-t)Bin-1(t) + tBin 11(t) 0 b d a c p(t)=aB03(t)+bB13(t)+cB23(t)+dB33(t) 10 • Để lặp lại đường B-Spline, sử dụng c|c điểm điều khiển phần đầu đường cong để tính to|n c|c gi| trị tại cuối đường cong: X t    P( i k ) mod n Bk , t  i  k 0 • C|c gi| trị tham số l{ hợp lệ 29 • Uniform B-splines khơng nội suy c|c điểm điều khiển, ngoại trừ: – Lặp lại điểm điều khiểm lần – Tất đạo h{m triệt tiêu điểm điều khiển – Để nội suy điểm có đạo h{m kh|c zero, cần sử dụng non-uniform B-splines với c|c điểm nút lặp lại • Uniform B-splines thuộc C2 – Tất c|c h{m blending l{ C2, tổng c|c h{m blending l{ C2 30 • C|ch thực tương tự đường Bezier – Ước lượng tập c|c gi| trị tham số t v{ nối c|c đoạn thẳng • Tuy nhiên, khó x|c định c|c ước lượng (về số lượng, gi| trị) – Dùng nguyên tắc chia để t|ch đường cong th{nh c|c đoạn ngắn, sau nối c|c điểm điều khiển • Nguyên tắc subdivision cho B-splines n{o? • Thay subdivision, h~y xem qu| trình t|ch l{ qu| trình tinh chỉnh: – Thêm c|c điểm điều khiển, v{ knots, c|c điểm sẵn có – Sử dụng thuật giải Oslo để vẽ đường B-Spline 31 • Ý tưởng chính: ph|t sinh 2n-3 điểm điều khiển mới: – Thêm điểm điều khiển v{o đoạn cong: P’0,1, P’1,2, P’2,3 , …, P’n-2,n-1 – Thay đổi c|c điểm điều khiển h{nh: P’1, P’2, …, P’n-2 • Bỏ điểm điều khiển đầu v{ cuối • Rules: Pi, j  Pi  Pj , P'i  Pi 1  6Pi  Pi 1  • Nếu đường cong có chu trình, ph|t sinh 2n điểm điều khiển c|ch tính c|c tọa độ trung bình 32 • Cả đường B-spline v{ Bezier l{ dạng đường cubic, biến đổi qua lại • Nhắc lại, điểm đường cong biểu diễn ma trận: T x(t )  P MT – P l{ vector c|c điểm điều khiển – M l{ ma trận MB-spline hay MBezier – T l{ vector cột chứa : t3, t2, t, • Dễ d{ng x|c định ma trận MB-spline->Bezier nhằm biến đổi c|c điểm điều khiển B-spline th{nh c|c điểm điều khiển Bezier 33 M B  spline Bezier   P0,Bezier  1 P  0  1,Bezier     P2,Bezier  0    P 0  3,Bezier  1  0 0  0 4 4 1 4 0 0  0  1 0  P0,B  spline   0  P1,B  spline  0  P2,B  spline   1  P3,B  spline 34 • Uniform B-splines l{ trường hợp đặc biệt Bsplines • Mỗi h{m blending giống • C|c h{m blending starts với t=-3, t=-2, t=-1,… • Mỗi h{m blending kh|c zero for units of the parameter • Non-uniform B-splines có c|c h{m blending starting v{ stopping c|c gi| trị kh|c nhau, v{ h{m blending khơng giống 35 • Knots: x|c định d~y c|c gi| trị tham số m{ c|c h{m blending bật hay tắt • Gi| trị Knot ln tăng, v{ có n+d+1 tập tạo nên knot vector: (t0,t1,…,tn+d) với t0  t1  …  tn+d • Một đường cong x|c định cho gi| trị tham số td-1 v{ tn+1 • C|c gi| trị tham số n{y ứng với vị trí c|c đoạn đường cong giao • Có điểm điều khiển cho gi| trị knot vector • C|c h{m blending định nghĩa đệ quy theo dạng the knots v{ bậc đường cong 36  t  tk   Bk ,d 1 t   Bk ,d t     tk d 1  tk   tk  d  t    Bk 1,d 1 t   tk  d  tk 1  • Quan hệ đệ quy bắt đầu với B-splines bậc 1, v{ x}y dựng dần cho c|c bậc cao • SỬ dụng thuật giải Cox - de Boor 1 Bk ,1 t    0 tk  t  tk 1 otherwise 37 • Uniform cubic B-splines tạo với knot vector có dạng (-3,-2,-1,0,1,…,n+1) • Mỗi h{m blending l{ kh|c zero khoảng tham số có độ d{i • Tất h{m l{ dịch chuyển lẫn – Mỗi h{m l{ tạo dời đơn vị từ h{m trước – Bk,d(t)=Bk+1,d(t+1) • C|c h{m blending l{ kết phép to|n convolving với d lần 38 B 1,1 B 0,1 1,2 1,2 B 1,1( t ) B 0,1( t ) 0,8 0,8 0,6 0,6 0,4 0,2 0,4 0,2 0,9 0,6 0,3 -0,3 -0,6 -0,9 -1,2 -1,5 -1,8 -2,1 -2,4 -3 -2,7 t t B 2,1 B 3,1 1,2 1,2 B 3,1( t ) B 2,1( t ) 0,8 0,8 0,6 0,6 0,4 0,4 0,2 0,2 0 t t 39 1,2 0,8 0,6 0,4 t  B0, (t )   1  t 0,75 0,5 0,25 -0,25 -0,5 -0,75 -1 -1,25 -1,5 -1,75 0,2 -2 0,4 -2,25 0,8 -2,5 -2,75 B1,2(t) 1,2 -3 0,85 0,5 0,15 -0,2 -0,55 -0,9 -1,25 -1,6 -1,95 -2,3 -2,65 -3 B0,2(t) 0,6 0,75 0,5 0,25 -0,25 -0,5 -0,75 -1 -1,25 -1,5 -1,75 -2 -2,25 -2,5 -2,75 -3 B2,2(t) B 0,2 B 1,2 1,2 0,8 0,6 0,4 0,2 t t B 2,2   t  2   t  1 0,2 t 40 -3  t  32 1 B0,3 (t )   2t  6t  2  t 0, 75 0, 0, 25 -0, 25 -0, -0, 75 -1 -1, 25 -1, 0,1 -1, 75 0,2 -2 0,4 -2, 25 0,6 -2, 0,5 B1, 3(t) 0,7 -2, 75 0,75 0,5 0,25 -0,25 -0,5 -0,75 -1 -1,25 -1,5 -1,75 -2 -2,25 -2,5 -2,75 -3 B0,3(t) B 0,3 B 1,3 0,8 0,8 0,7 0,6 0,5 0,4 0,3 0,3 0,2 0,1 t t   t  2   t  1 1  t  41 0,8 0,6 0,4 0,2 -0,2 -0,4 -0,6 -0,8 -1 -1,2 -1,4 -1,6 -1,8 -2 -2,2 -2,4 -2,6 -2,8 -3 B0,4(t) B 0,4 0,7 0,6 0,5 0,4 0,3 0,2 0,1 t 42  t  33   3t  15t  21t  B0, (t )    3t  3t  3t   1  t 3   t  2   t  1 1  t  0  t 1 43 ... 0,25 -0 ,25 -0 ,5 -0 ,75 -1 -1 ,25 -1 ,5 -1 ,75 0,2 -2 0,4 -2 ,25 0,8 -2 ,5 -2 ,75 B1,2(t) 1,2 -3 0,85 0,5 0,15 -0 ,2 -0 ,55 -0 ,9 -1 ,25 -1 ,6 -1 ,95 -2 ,3 -2 ,65 -3 B0,2(t) 0,6 0,75 0,5 0,25 -0 ,25 -0 ,5 -0 ,75 -1 ... 75 0, 0, 25 -0 , 25 -0 , -0 , 75 -1 -1 , 25 -1 , 0,1 -1 , 75 0,2 -2 0,4 -2 , 25 0,6 -2 , 0,5 B1, 3(t) 0,7 -2 , 75 0,75 0,5 0,25 -0 ,25 -0 ,5 -0 ,75 -1 -1 ,25 -1 ,5 -1 ,75 -2 -2 ,25 -2 ,5 -2 ,75 -3 B0,3(t) B 0,3... -3 -2 ,5 -2 -1 ,5 -1 -0 ,5 0,5 1,5 2,5 3,5 4,5 t 25 n X t    Pk Bk , t  0,25 k 0 0,2 0,15 0,1 P0B0,4 P1B1,4 P4B4,4 P2B2,4 P6B6,4 P3B3,4 0,05 P5B5,4 -3 -2 ,7 -2 ,4 -2 ,1 -1 ,8 -1 ,5 -1 ,2 -0 ,9 -0 ,6

Ngày đăng: 26/10/2021, 13:26

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

  • Đang cập nhật ...

Tài liệu liên quan