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 32 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 33 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