Đường cong tham số bậc haiChọn tham số u [0, 1], điểm S0 trên cạnh P0P1 được biểu diễn như sau:Tương tự điểm S1 trên được cạnh P1 P2 được xác định theo tham số u.Xét cạnh mới S0S1, điể
ĐƯỜNG CONG THAM SỐ BÉZIER
Phương trình biểu diễn đường cong Bézier
Ta xét quá trình xây dựng phương trình tham số của các đường thẳng, đường cong bậc hai và bậc ba. a Phương trình tham số đoạn thẳng
Hình 6.3 Xác định một điểm trên đoạn thẳng theo tham số
Xét một đoạn thẳng có điểm đầu P 0 và điểm cuối P 1, điểm C là một điểm bất kì nằm trên đoạn thẳng Biểu diễn dạng phương trình tham số của đoạn thẳng này như sau: với tham số u [0, 1] Kí hiệu hai hàm cơ sở B 0, B 1 như sau:
Thay lại vào phương trình trên:
Như vậy, một điểm trên đường thẳng được xác định dựa vào các hàm cơ sở và các điểm tương ứng. b Phương trình tham số của đường cong bậc hai
Ta xét đa giác bao gồm các đỉnh P 0, P 1, P 2
Hình 6.4 Đường cong tham số bậc hai
Chọn tham số u [0, 1], điểm S 0 trên cạnh P 0 P 1 được biểu diễn như sau:
Tương tự điểm S 1 trên được cạnh P 1 P 2 được xác định theo tham số u.
Xét cạnh mới S 0 S 1, điểm C trên cạnh này được xác định theo tham số u cũng là điểm nằm trên đường cong bậc hai có ba đỉnh điều khiển P 0, P 1, P 2.
Triển khai phương trình trên, ta có: đặt các hàm cơ sở B i :
\ phương trình C(u) biểu diễn đường cong bậc hai (quadratic): c Phương trình tham số đường cong bậc ba
Thực hiện quá trình tính toán trên với đường cong bậc ba có 4 đỉnh điều khiển P 0, P 1, P 2, P 3, ta có phương trình biểu diễn như sau: với các hàm cơ sở B i được xác định:
Hình 6.5 Đường cong tham số bậc ba
Các phương trình tham số biểu diễn đường cong C(u) trên là các trường hợp cụ thể của đường cong tham số Bézier. d Phương trình đường cong tham số Bézier tổng quát: với Điểm có toạ độ: trong đó:
(i = 0 n) là các đỉnh điều khiển của đường cong;
là hàm trộn (blending funtion) hay còn gọi là đa thức Bernstein (Bernstein polynomial) có bậc n: Đa giác điều khiển của đường cong Bézier là đa giác thu được khi nối các đỉnh điều khiển theo thứ tự lại với nhau.
Một điểm trên đường cong Bézier C(u) tại tham số u có toạ độ:
Hình 6.6 Đường cong Bézier bậc p = 3 có 4 đỉnh điều khiển Để biểu diễn tham số u trong đoạn [a, b] thay vì trong đoạn [0, 1], ta đặt:
Hàm trộn xác định đường cong Bézier trong miền tham số [a, b]:
Hàm trộn là một đa thức có bậc nhỏ hơn số lượng các điểm điều khiển.
Ví dụ 6.1 Xét đường cong Bézier bậc hai có (n + 1) = 3 đỉnh điều khiển P 0, P 1, P 2:
I 4 =I 1 y 4 −y 2 y 1 −y 2 +I 2 y 1 −y 4 y 1 −y 2 Đây là cũng là phương trình biểu diễn của một đường cong parabola.
Ví dụ 6.2 Xét đường cong Bézier bậc ba có (n + 1) = 4 đỉnh điều khiển P 0 , P 1 , P 2 , P 3 Phương trình của đường cong như sau:
Các hàm được gọi là các hàm trộn vì một điểm C(u) trên đường cong có thể xem như được kết hợp từ các giá trị các đỉnh và các hàm tương ứng
Ví dụ 6.3 Với tham số u = 0.3, bốn đa thức của hàm trộn tương ứng với các đỉnh P 0 , P 1 , P 2 ,
P3 có các giá trị 0.343, 0.441, 0.189, 0.027 Tổng của bốn đỉnh với các trọng số tương ứng cho kết quả C(0.3).
Ví dụ 6.4 Given a Bézier curve with 4 control points: B0[1 0] , B1[3 3] , B2[6 3] , B3[8 1] Determine any 5 points lying on the curve Also, draw a rough sketch of the curve.
The given curve is defined by 4 control points So, the given curve is a cubic bezier curve.
The parametric equation for a cubic bezier curve is-
Substituting the control points B0, B1, B2 and B3, we get-
Now, to get 5 points lying on the curve, assume any 5 values of t lying in the range 0 > Dựng hình một đường cong B-spline bậc 3
Xác định một điểm trên đường cong B-spline không đồng nhất
Để xác định điểm trên đường cong B-spline ứng với tham số u, ta có thể sử dụng các cách sau:
1) Triển khai phương trình đường cong và các hàm B-spline cơ sở
2) Sử dụng cách biểu diễn ma trận của phương trình đường cong
3) Sử dụng giải thuật de Boor.
Ví dụ 6.19 Cho đường cong B-spline có n + 1 = 4 đỉnh điều khiển
Xác định điểm của đường cong tương ứng với tham số u = 0.45. ta cần xác định các hàm cơ sở : vector nút U có các phần tử: u 0 u 1 u 2 u 3 u 4 u 5 u 6
Tại giá trị tham số u =0.45 các hàm cơ sở được xác định như sau: span = 2
Vị trí của điểm trên đường cong B-spline C(u) ứng với tham số u = 0.45:
Kiểm tra kết quả tại Website http://nurbscalculator.in/
Ví dụ 2 Tính tọa độ điểm C(u) (với giá trị tham số u tự chọn trong khoảng [0, 1]) của đường cong
B-spline không đồng nhất bậc p = 2, có 4 đỉnh P0(10.0, 0.0), P1(20.0, 30.0), P2(50.0, 40.0), P3(80.0, 0.0); véctơ nút U = {0.0, 0.0, 0.0, 0.0, 0.5, 1.0, 1.0, 1.0, 1.0 } Biểu diễn hình học của đường cong và khung điều khiển được mô tả như hình sau.
Ví dụ 3 Tính các hàm cơ sở N i,k (u) cho một đường cong B-spline C(u) tại u = 0.2 có:
Ví dụ 3 Tính các hàm cơ sở N i,k (u) cho một đường cong B-spline C(u) có:
Thuật toán xác định một điểm trên đường cong B-spline bậc p tương ứng với tham số u trong vector nút U được trình bày như sau: int CurvePoint3D(int n, int p, double *U, double *P, double u, double *C) { int span, j, k; double *N = NULL; if(!(N = (double*)calloc(p+1, sizeof(double)))) return ERROR; span = FindSpan(n, p, u, U);
} int FindSpan(int n, int p, double u, double *U)
{ int low, mid, high; if(u >= U[n]) return n; if(u = U[mid+1]){ if(u < U[mid]) high = mid; else low = mid; mid = (low + high)/2;
ĐƯỜNG CONG THAM SỐ B-SPLINE ĐỒNG NHẤT
Đường cong B-spline đồng nhất (uniform) là một trường hợp đặc biệt của đường cong B-spline không đồng nhất (non-uniform) với vector nút đồng nhất có khoảng cách giữa tất cả các nút bằng nhau: u i+1 – u i = , với i = 0 n + p Điều này cho phép các phép biến đổi dịch chuyển
(translation), tỉ lệ (scaling) trên vector nút không ảnh hưởng đến hình dạng của hàm B-spline cơ sở
N i,k (u) Đây là đường cong có các điểm đầu và cuối không đi qua các đỉnh điều khiển đầu và cuối tương ứng.
Một đường cong B-spline đồng nhất được xác định bằng tập hợp (n + 1) đỉnh điều khiển
P 0 (x 0 , y 0 , z 0 ) đến P n (x n , y n , z n ), với p là bậc của đường cong
Phương trình biểu diễn một đường cong B-spline đồng nhất như sau: trong đó:
p là bậc (degree) của đường cong với
là tập các đỉnh kiểm điều khiển của đường cong;
Vector nút U đồng nhất có (n + p + 2) phần tử là một dãy các giá trị số không giảm.
Chọn vector nút đồng nhất có u i = i u i+k – u i = i + k – i = k
Từ hàm cơ sở của đường cong B-spline không đồng nhất ta suy ra hàm cơ sở B-spline N i,p (u) thứ i bậc p được xác định trong các khoảng giá trị của vector nút đồng nhất được biểu diễn như sau: với
Các hàm trộn cách đều với khoảng cách đơn vị:
1.2.1 Triển khai các hàm cơ sở theo bậc p và vectơ nút U đồng nhất
Xét véctơ nút U = { 0, 1, 2, 3, 4, ….} ta các các hàm N i,k (u) như sau: a) Hàm cơ sở bậc p = 1 b) Hàm cơ sở bậc p = 2 c) Hàm cơ sở bậc p = 3
1.2.2 Biểu diễn dạng ma trận của phương trình đường cong B-spline đồng nhất
Từ phương trình của đường cong B-spline đồng nhất tổng quát, ta có phương trình đường cong B-spline bậc ba (p = 3) đồng nhất có 4 đỉnh điều khiển P 0 , P 1 , P 2 , P 3 như sau:
Hình 6.23 Đường cong B-spline với vector nút đồng nhất
Với các hàm cơ sở N i,3 (u) được xác định:
Biểu diễn phương trình đường cong B-spline đồng nhất bậc ba dạng ma trận:
Các hàm trộn cách đều với khoảng cách đơn vị:
Tương tự ta xây dựng được các ma trận biểu diễn của đường cong B-spline đồng nhất các bậc p = 2, 3, 4, 5, 6 như sau:
>> _ebook - Curves and Surfaces for Computer Graphics - David Salomon 2006.pdf
Ví dụ 6.18 Tính tọa độ điểm C(u) (với giá trị tham số u tự chọn trong khoảng [0, 1]) của đường cong B-spline đồng nhất có:
Biểu diễn hình học của đường cong và khung điều khiển được mô tả như hình sau.
Ví dụ 6.19 Xét đường cong B-spline đồng nhất có n + 1 = 8 đỉnh điều khiển Do đó có n – 2 đoạn cong Vậy đường cong xác định trên các tham số từ u 3 đến u 8 (i = 3 8) Mỗi đoạn cong C i có tham số u [u i , u i+1) với u i+1 u i = 1được mô tả như sau: