Chủ Nhật, 6 tháng 9, 2015

Đường B-spline

14. Đường B-spline :

      Với Bezier hay spline đều không cho ta thay đổi đường cong một cách cục bộ, việc thay đổi
vị trí các điểm kiểm soát hay các vector tiếp tuyến không chỉ ảnh hưởng trực tiếp đến độ dốc của
đường cong lân cận quanh điểm kiểm soát mà còn kéo theo ảnh hưởng đến các phần còn lại của
đường cong. Đường Bezier thêm vào đó là khi tính xấp xỉ ở bậc cao sẽ rất phức tạp còn khi liên
kết nhiều đoạn Bazier hay Hermite bậc thấp (bậc ba) có thể đem lại ích lợi khi tính toán nhưng
yếu tố ràng buộc về tính liên tục của đạo hàm bậc cao tại các điểm nối không cho điều khiển cục
bộ như mong muốn.
      Việc kết hợp luôn phiên các đoạn cong tổng hợp, thông qua các đa thức tham số xác định
riêng rẽ trên một số điểm kiểm soát lân cận với số bậc tuỳ ý không phụ thuộc vào số lượng các
điểm kiểm soát, cho phép tạo nên đường cong trơn mềm B-spline. Đường cong này đã khắc phục
được các nhược điểm mà các dạng đương cong trước chưa đạt được. Có nghĩa là khi dịch chuyển
điểm kiểm soát của đương cong thì chỉ một vài phân đoạn lân cận của điểm kiểm soát đó bị ảnh
hưởng chứ không phải toàn bộ đường cong.
Với n+ 1 số điểm kiểm soát Pi ta có:
∑=
=
n
i
P u Ni k u Pi
0
, ( ) ( ).
Trong đó Ni,k(u) là hàm hợp B-Spline bậc k-1 và sự khác biệt giữa B-spline và Bezier sẽ
được thể hiện trên đó. Trong đường Bezier bậc của đa thức được xác định bởi số đoạn cong trên
đường cong đó, còn với B-spline bậc được thoả mãn độc lập với số điểm kiểm soát của đường.
Chương 7: Đường cong và mặt cong trong 3D
127
Hơn nữa hàm hợp của Bezier khác 0 trên toàn bộ khoảng của tham số u còn B-spline chỉ
khác 0 trên đoạn ngắn của các tham số. Mỗi đoạn trên hàm hợp chỉ tương ứng với một điểm thì
chỉ dẫn tới sự thay đổi cục bộ trong khoảng mà trên đó tham số của hàm hợp khác 0.
Biểu diễn toán học của B-spline, với hàm B-spline có bậc k-1 xác định thì:
( ) ( )
( ) ( ) ( )
( ) ( ) , 1
1 2
1
1, 1
1
1
, N u
U U
U u N u
U U
u U N u i k
i i k
i
i k
i i k
i k
i k −
+ + −
+
− −
+ −
+ −

− + −
− =
Trong đó ui là giá trị tại nút pi với biến số là u được gọi là các vector nút.
Tất cả các giá trị nút đồng thời xác định trên vector nút và các nút nguyên thường sử dụng
dễ dàng. Trong trường hợp này các hàm hợp bậc k sẽ khác 0 trong khoảng k của vector nút và
toàn bộ các giá trị trên vector cho một tập hợp điểm bằng n+1+k.
Không như Bezier, đường B-spline không đi qua hai điểm đầu và cuối trừ khi hàm hợp
được dùng là tuyến tính.
Đường B-spline có thể được tạo qua hai điểm đầu, cuối và tiếp xúc với vector đầu và cuối
của đa giác kiểm soát. Bằng cách thêm vào các nút tại vị trí của các nút cuối của vector tuy nhiên
các giá trị giống nhau không nhiều hơn bậc của đường cong.
Giống như đường cong Bezier, tính chất bao lồi của đa giác kiểm soát và tính chất chuẩn
được thỏa mãn. Vậy có:
Trong đường cong B-spline, số lượng các nút, bậc của đường cong và số điểm điều khiển
luôn có các quan hệ ràng buộc:
0 ≤ u ≤ n - k + 2
Hình 7.7 Đường cong B-spline


⎧ ∈ = +
0 others
1 [ , ] ( ) 1
,1
i i
i
u u u
N u
N (u) 1
n
i 0
∑ i,k = =
Chương 7: Đường cong và mặt cong trong 3D
128
Vậy việc xác định các vector nút sẽ phụ thuộc vào sự phân loại của chính bản thân chúng và
điều đó sẽ ảnh hưởng đến hình dạng của đường cong được mô tả. Phân loại sẽ dựa trên loại của
đường cong như sau:
Đều tuần hoàn (periodic)
Không tuần hoàn (open or unperodic)
Không đều (non-uniform)
a. B Spline - Đều và tuần hoàn
Vector nút là đều khi giá trị của chúng cách đều nhau một khoảng ∇ xác định.
Ví dụ: [ 0 1 2 3 4 5 ] với ∇ xác định = 1
 [ -2-1/2 1 5/2 4 ] với ∇ xác định = 3/2
 [ -1-0.6 -0.2 0.2 0.6 1 ] với ∇ xác định = 0.4
Trong các bài toán thực tế, thông thường thì khoảng xác định của tham biến nằm trong
khoảng từ 0 đến 1 hay từ 00 đếm 3600
 thì việc chọn giá trị của các vector nút được chuẩn hoá
trong khoảng [0 1] hay [00
 3600
] đó.
 [ 00.2 0.4 0.6 0.81 ] với ∇ xác định = 0.2
 [ 00
1200
2400
3600
 ] với ∇ xác định = 1200

Bậc (k-1) Cấp (k) Vector nút (m=n+k) Khoảng tham số (k-1)≤t≤(n+1)
1 2 [0 1 2 3 4 5 6 7] 1≤t≤6
2 3 [0 1 2 3 4 5 6 7 8] 2≤t≤6
3 4 [0 1 2 3 4 5 6 7 8 9] 3≤t≤6
Các vector nút gọi là đều và tuần hoàn khi các hàm B-spline đối với mỗi phân đoạn có thể
chuyển đổi lẫn nhau. Bảng trên chỉ ra sự thay đổi của miền tham số và vector nút khác nhau của
các đường cong B-spline khi bậc của đường cong thay đổi. Số lượng của vector nút được qui định
bởi biểu thức m-n+k và số lượng các điểm kiểm soát tính qua biểu thức (n+1) bằng6.
Tính chất:
Ảnh hưởng của mỗi hàm cơ sở được giới hạn trong k đoạn là cấp của đường cong cần thể
hiện. Vậy chúng ta sử dụng đường cong bậc ba thì ảnh hưởng của hàm cơ sở trải dài trên bốn
đoạn của đường cong.
Đường B-spline tuần hoàn không đi qua các điểm đầu và cuối của đa giác kiểm soát ngoại
trừ với đường bậc 1 (k=2) mà khi đó đường cong chuyển dạng thành đường thẳng.
Ví dụ về các đường B-spline tuần hoàn có các bậc khác nhau có cùng các điểm và đa giác
kiểm soát. Khi k=2 đường cong bậc một trùng với các cạnh của đa giác kiểm soát.
Khi k=3, đường cong B-spline bậc 2, bắt đầu tại trung điểm của cạnh thứ nhất và kết thúc
tại trung điểm của cạnh cuối cùng của đa giác kiểm soát.
b. Không tuần hoàn (Open – Non Uniform)
Một vector không tuần hoàn hoặc mở là vector nút có giá trị nút tại các điểm đầu cuối lặp
lại với số lượng các giá trị lặp lại này bằng chính cấp k của đường cong và các giá trị nút trong
mỗi điểm lặp này là bằng nhau
Chương 7: Đường cong và mặt cong trong 3D
129
Nếu một trong hai điều kiện này hoặc cả hai điều kiện không được thoả mãn thì vecto nút là
không đều.
Ví dụ, xét một đa giác kiểm soát với bốn đỉnh. Các đường cong B-spline cấp 2,3,4 được xây
dựng dựa trên đa giác kiểm soát có số lượng các nút m=n+k sẽ có vector nút như sau:
Cấp (k) số lượng nút (m = n + k) Vector nút không tuần hoàn
2 6 [0 0 1 2 3 3]
3 7 [0 0 0 1 2 2 2]
4 8 [0 0 0 0 1 1 1 1]
Các biểu thức phải được thoả mãn đối với nút ui trên vector nút không tuần hoàn bắt đầu tại
u0.
Danh sách các vector nút không tuần hoàn đã đưa ra ở mục này đều thoả mãn các biểu thức
sau:
ui = 0 1=<i<=k
ui = i-k k+1<i<=n+1
ui = n-k+2 n+1<i<=n+k+1
Các vector nút không tuần hoàn cung cấp các hàm cơ sở được định nghĩa trong một miền
tham số phức tạp và không có sự mất mát như với loại vector tuần hoàn và vì vậy đường cong Bspline
loại này luôn đi qua các điểm đầu và cuối của đa giác kiểm soát.
Ví dụ: hàm hợp bậc ba tính xấp xỉ cho 8 khoảng sẽ xác định trên vector nút là
00001234555. Ở đây chúng ta còn thấy sự thay đổi cục bộ trên đường cong khi ta thay đổi vị trí
mỗi điểm.
Đường cong Bezier là trường hợp đặc biệt của B-spline không tuần hoàn, trong đó số lượng
các đỉnh sử dụng bằng với cấp của đường cong. Vector nút trong trường hợp này là:
 [ 0 0 ..... 0 1 1 ...... 1 1 ]
 kk
Đường cong B-spline bậc ba với bốn điểm kiểm soát và vector không tuần hoàn [0 0 0 0 1 1
1 1] cũng chính là đường cong Bezier.
c. Không đều
Trong vector nút không tuần hoàn, giá trị các nút xuất hiện tại các biên được lặp lại và các
nút bên trong các bước nút bằng nhau. Nếu một trong hai điều kiện này hoặc cả hai điều kiện này
không được thoả mãn thì vector nút là không đều.
Ví dụ các nút không đều có thể tạo ra bằng cách đặt các giá trị lặp lại đối với các nút ở
khoảng giữa [0 1 2 3 3 4 5]
Hay tạo ra bước nhảy không bằng nhau giữa các nút [0.0 0.2 0.5 0.75 1.0]
Các vector nút loại đều cho phép người sử dụng dễ hình dung và xử lý trong các phép toán
nhưng trong một số các trường hợp bước nút không đều lại có những ưu điểm đặc biệt. Ví dụ như
trong việc điều khiển hình dạng của đường cong trong tiến trình thiết kế khi các sai lệch không
Chương 7: Đường cong và mặt cong trong 3D
130
mong muốn có thể xuất hiện mà việc sử dụng đường cong B-spline đều với các dữ liệu điểm có
các khoảng cách tương đối lớn mà không đều nhau.
Kết luận
o B-spline là một dòng của Bezier
o Thực tế khi ta chọn bậc k cho tập hợp k điểm thì thi B-spline chuyển thành Bezier
o Khi bậc của đa thức giảm sự ảnh hưởng cục bộ của mỗi điểm nút càng rõ ràng hơn.
o Khi tồn tại ảnh hưởng cục bộ càng lớn và đường cong phải đi qua điểm đó.
o Chúng ta có thể thay đổi hình dạng đường cong B-spline bằng cách:
o Thay đổi kiểu vector nút: đều tuần hoàn, mở, không đều
o Thay đổi cấp k của đường cong
o Thay đổi số đỉnh và vị trí các đỉnh đa giác kiểm soát
o Sử dụng các điểm kiểm soát trùng nhau

Không có nhận xét nào:

Đăng nhận xét