Đối tượng nghiên cứu Cơ sở mô hình hóa hình học, Phương pháp sinh đường cong và mặt cong nhờ các điểm điều khiển, B - splines, Ứng dụng B- splines trong đồ họa 3.. Nhiệm vụ nghiên cứu
Trang 1Đồ họa máy tính phát triển dựa trên các kết quả của hình học họa hình, hình học vi phân cùng với nhiều kết quả toán học khác đặc biệt bao gồm đại
số và giải tích Hiện nay, với sự phát triển của phần cứng máy tính, đồ họa cũng phát triển nhanh hơn, tuy vậy nền tảng của nó vẫn là cơ sở mô hình hóa hình học Có nhiều bài toán đặt ra trong đồ họa máy tính Một trong những bài toán cơ bản của nó là xử lý các đường cong và mặt cong
B-splines là một dạng đường cong và mặt cong trong mô hình hóa hình học đã được nhiều tác giả trên thế giới nghiên cứu
Đề tài này tìm hiểu về B - splines và xây dựng một ứng dụng trong bài toán thiết kế hình học Đây là việc làm có ý nghĩa khoa học và thực tiễn
2 Đối tượng nghiên cứu
Cơ sở mô hình hóa hình học, Phương pháp sinh đường cong và mặt cong nhờ các điểm điều khiển, B - splines, Ứng dụng B- splines trong đồ
họa
3 Phạm vi nghiên cứu
Đề tài tập trung tìm hiểu lý thuyết về splines, B-splines và ứng dụng
4 Nhiệm vụ nghiên cứu
Tìm hiểu các kiến thức cơ sở về hình học đường cong và mặt cong, các phép biến đổi tọa độ trong không gian 2D và 3D
Tìm hiểu lý thuyết về splines, B-splines sinh đường cong và mặt cong
Trang 2 Từ những kết quả lý thuyết B-splines xây dựng ứng dụng cho bài toán trong thiết kế hình học 2D và 3D
Cài đặt thuật toán và ứng dụng
5 Những nội dung nghiên cứu chính
Tìm hiểu các kiến thức tổng quan về mô hình hóa hình học
Tìm hiểu lý thuyết đường cong B-splines và mặt cong B-splines
Tìm hiểu về các bài toán dựng hình
Ứng dụng B-splines vào các bài toán mô hình hóa hình học
6 Phương pháp nghiên cứu
- Phương pháp chuyên gia: Tham khảo ý kiến của các thầy cô trong lĩnh vực đồ họa, đảm bảo toán học cho máy tính và hệ thống tính toán và các lĩnh vực có liên quan
- Thu thập, nghiên cứu tài liệu từ các giáo trình, bài báo, tạp chí, bài giảng
- Phương pháp thực nghiệm: Cài đặt ứng dụng bằng ngôn ngữ MATLAB
7 Ý nghĩa khoa học của đề tài
Kết quả nghiên cứu của đề tài là đưa ra 1 ứng dụng cụ thể của B-splines trong bài toán mô hình hóa hình học Bên cạnh đó, đề tài cũng đã tổng hợp được các kết quả nghiên cứu cơ bản của hình học vi phân và phép biến đổi hình học sử dụng trong mô hình hóa hình học, đặc biệt là các kết quả về B- splines
Trang 3CHƯƠNG 1 LÝ THUYẾT MÔ HÌNH HÓA HÌNH HỌC
Chương này trình bày về các kết quả cơ bản của hình học vi phân và phép biến đổi hình học được sử dụng trong mô hình hóa hình học Lý thuyết
về đường cong, mặt cong và các phép biến đổi tọa độ trong không gian 2D, 3D
1.1 Cơ sở của mô hình hóa hình học
1 1 1 Các phép biến đổi hình học trong không gian 2D và 3D
Tất cả các phép biến hình trong ĐHMT và mô hình hóa hình học đều dựa trên 3 hình thức biến đổi tọa độ cơ bản là dịch chuyển tịnh tiến, lấy tỷ
lệ và quay [3]
Xét điểm P'(x', y') là vị trí của điểm P(x, y) sau phép biến đổi tọa độ Tọa
độ (x', y') của điểm P' tương ứng với vector dịch chuyển t(tx, ty) (Hình 1.1a),
hệ số tỷ lệ s(sx, sy) (Hình 1.1b); góc xoay θ ngược chiều quay kim đồng hồ (Hình 1.1c) được xác định như sau:
Hình 1.1: Phép biến đổi tọa độ 2D Phép biến đổi tọa độ 3D là mở rộng của phép biến đổi tọa độ 2D Tọa độ
Trang 4(x', y', z') của điểm P(x, y, z) sau phép biến đổi tọa độ 3D, tương ứng với vector dịch chuyển t(tx, ty, tz); hệ số tỷ lệ s(sx, sy, sz) được xác định như sau:
s s S
Quanh trục x x' = x y' = ycosθ - zsinθ z' = ysinθ + zcosθ
Q u a n h t r ụ c y x' = zsinθ + xcosθ y' = y z' = zcosθ + xsinθ
Quanh tr ụ c z x' = xcosθ + ysinθ y' = xsinθ + ycosθ z' = z
Bảng 1.1: Phép quay 3D quanh các trục tọa độ Khi đó ma trận biến đổi đồng nhất R đối với phép quay 3D có giá trị như sau (đặt s = sinθ; c = cosθ;):
Trang 5(x' y' z' 1) = (x y z 1).H (1.9) Trong đó :
Trang 6Ví dụ 1.1: điểm P(x, y , z) trong hệ tọa độ Đề-các 3 chiều được biểu
diễn dưới dạng tọa độ đồng nhất 4 chiều P'(x',y',z',h) theo mối quan hệ:
x = x '/ h; y = y'/h; z = z'/h (1.13) trong đó h ≠0 là hệ số vô hướng
Mối quan hệ (1.13) dựa trên thực tế, nếu tọa độ Đề-các của điểm P được nhân với hệ số h, điểm P sẽ được di chuyển tới vị trí mới P'(x',y',z') theo phép lấy tỷ lệ với hệ số h
Tổng quát, ta có thể biểu diễn phép biến đổi 2D tuyến tính (1.1), (1.2), (1.3) dưới dạng ma trận bởi vector tọa độ đồng nhất (chuẩn tắc) Ph, P'h và ma trận biến đổi đồng nhất M:
trong đó: Ph = (x y 1) ; P'h = (x' y' 1)
Ma trận biến đổi tọa độ M tương ứng với phép dịch chuyển (T), phép lấy
tỷ lệ (S) và phép quay (R) có giá trị như sau:
Trang 7Có thể mô tả phép biến đổi tọa độ (1.9) dưới hình thức hệ tọa độ chuyển động (Hình 1.2) Cho ih, jh và kh là các vector chỉ hướng đồng nhất của hệ tọa độ tham chiếu:
P'h = (0 0 0 1)H = (tx ty tz 1) = (t 1) (1.17)
Vì lý do này, người ta gọi ma trận biến đổi đồng nhất H là khung tọa độ
Như vậy, phép biến đổi (1.9) chính là phép ánh xạ từ hệ tọa độ làm việc (hệ
tọa độ địa phương hay hệ tọa độ chuyển động) sang hệ tọa độ hệ thống (hệ tọa độ cố định)
Trang 8Ở các phần trên ta đã xét các phép biến đổi tọa độ trong cùng một hệ tọa
độ mà hoàn toàn không có sự thay đổi hệ tọa độ tham chiếu về vị trí cũng như phương chiếu Trong phần này ta sẽ xét tới phép ánh xạ đối tượng hình học giữa 2 hệ tọa độ khác nhau
Phép ánh xạ đối tượng hình học từ một hệ tọa độ sang hệ tọa độ thứ hai được định nghĩa như sự thay đổi mô tả đối tượng hình học từ hệ tọa độ thứ nhất sang hệ tọa độ thứ hai Do đó, không có sự thay đổi về vị trí và phương chiều của đối tượng hình học so với cả 2 hệ tọa độ
Phép ánh xạ tương đương với phép biến đổi hệ tọa độ thứ nhất sang hệ tọa độ thứ hai và được sử dụng rất phổ biến trong thiết kế đồ họa
Thông thường, người ta sử dụng định nghĩa hệ tọa độ làm việc
(còn được gọi là hệ tọa độ địa phương hay hệ tọa độ đối tượng) gắn liền với đối tượng thiết kế để đơn giản hóa việc thiết lập và nhập dữ liệu hình học
Trang 9Phần mềm thiết kế sẽ ánh xạ (chuyển đổi) tọa độ được đo trong hệ tọa
độ làm việc sang hệ tọa độ hệ thống trước khi lưu trữ trong hệ cơ sở dữ liệu
hệ thống
Phép ánh xạ đóng vai trò quan trọng đối với cấu trúc lắp ghép, khi mỗi đối tượng (chi tiết hay bộ phận) được định nghĩa theo hệ tọa độ hệ thống riêng và chúng cần được kết nối và quản lý trong hệ tọa độ hệ thống chủ
Ví dụ 1.1: Ta có thể đặt bài toán ánh xạ điểm từ một hệ tọa độ sang
hệ tọa độ thứ hai như sau: Cho trước tọa độ của điểm P xác định theo hệ tọa
độ (X, Y, Z), ta sẽ xác định tọa độ của điểm P theo hệ tọa độ (X', Y', Z'), sao cho thỏa mãn điều kiện:
P' = f(P, thông số ánh xạ) hay P' = P.H
trong đó:
P: Vector vị trí của điểm P theo hệ tọa độ (X, Y, Z)
P': Vector vị trí của điểm P theo hệ tọa độ (X', Y', Z')
H : Ma trận ánh xạ trong công thức (1.9) mô tả vị trí tương đối của
hệ tọa độ (X, Y, Z) so với hệ tọa độ (X', Y', Z')
1.2 Đường cong
Trong các ứng dụng của ĐHMT, hầu như các thực thể là đường cong và mặt cong Các thực thể này được dùng để mô tả các vật thể trong thế giới thực như nhà cửa, đồi núi, phương tiện đi lại…hay để xây dựng các thực thể đang được thiết kế Nếu chỉ sử dụng các phương trình đường cong sẽ không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế, ngược lại nếu dùng tập hợp các điểm thì thường cần phải dùng nhiều dung lượng nhớ
để lưu trữ cũng như tốc độ tính toán
Ta có quỹ đạo chuyển động của một chất điểm trong không gian có thể tạo thành đường thẳng hoặc đường cong Về mặt trực quan, người ta định nghĩa đường cong như là quỹ đạo điểm thỏa mãn một số điều kiện nào đó
Trang 10Qua hai điểm có thể vẽ được một đường thẳng Qua ba điểm có thể vẽ được một đường cong trong mặt phẳng Qua bốn điểm có thể vẽ được một đường cong trong không gian Nếu ta dùng các phương trình đường cong như Hypebol, Parabol, Elip thì việc tính toán có thể phức tạp và không thể hiện được hình ảnh thực hay ý tưởng đa dạng của người thiết kế
Vấn đề đặt ra là chọn đường cong như thế nào để phù hợp với việc biểu diễn trong máy tính?
Trong ĐHMT khi muốn xây dựng một đường cong tổng quát khi chưa biết phương trình toán học của nó người ta sử dụng một tập hợp các điểm cho trước gọi là tập các điểm điều khiển (control points) Giả sử ta dùng n+1 điểm điều khiển P0, P1, P2, , Pn, khi đó một đường cong C được tạo ra theo một trong hai cách sau:
Nội suy các điểm điều khiển: Đường cong C được bắt đầu tại điểm P0 và đi qua các điểm điều khiển trung gian theo thứ tự P0, P1,
P2, , Pn C kết thúc tại Pn
Xấp xỉ các điểm điều khiển: C không nhất thiết phải đi qua các điểm điều khiển nhưng hình dạng của nó được quyết định bởi các điểm điều khiển
Đường cong là các đối tượng cơ bản thường là kết quả của tiến trình thiết
kế và các điểm điều khiển đóng vai trò là công cụ để kiểm soát và mô hình hoá đường cong Cách tiếp cận này là cơ sở của lĩnh vực thiết kế mô hình hình học nhờ máy tính (Computer Aided Geometric Design, viết tắt là CAGD)
Về mặt toán học, đường cong được biểu diễn dưới các dạng:
Phương trình ẩn:
f(x, y, z) = 0
Phương trình tường minh:
y = f(x), z = g(x)
Trang 1111
Phương trình tham số:
x = x(t), y = y(t), z = z(t) trong đó t [0; 1]
Ví dụ 1.2: Xét đường tròn đơn vị (O, 1) trên mặt phẳng Oxy, có
tâm trùng với gốc hệ toa độ như trên (Hình 1.3) Mối quan hệ giữa các tọa độ
x và y được mô tả bởi phương trình ẩn:
f ( x , y ) = x 2 + y 2 - 1 =0 Nếu ta chỉ xét phần nửa trên của đường tròn thì ta có phương trình tường minh biểu diễn là:
y = g(x) = (1 – x2)1/2
Hình 1.3: Biểu diễn đường tròn đơn vị Giả sử P(x,y) là một điểm nằm trên đường tròn (O,1) Nếu đặt góc θ giữa đoạn thẳng PO và trục Ox là tham số của đường tròn, ta có phương trình tham số của đường tròn đơn vị:
x = x(θ) = cosθ ; y = y(θ) = sinθ Giả sử Q cũng là một điểm thuộc đường tròn, gọi góc tạo bởi PQ với trục
Trang 12và mặt cong từ phương trình đa thức ẩn được gọi là tham số hóa
Mặc dù về mặt lý thuyết có thể sử dụng phương trình toán học bất kỳ để biểu diễn đường cong, nhưng mô hình toán học dưới dạng đa thức được sử dụng phổ biến nhất do có đặc tính dễ dàng xử lý, đủ linh hoạt để mô tả phần lớn các loại đường cong sử dụng trong kỹ thuật
Mỗi đường cong có các đặc tính đó là: Độ chảy, Vector tiếp tuyến đơn vị, Vector pháp tuyến chính, Độ cong và bán kính cong [3]
xét đường cong được biểu diễn bằng phương trình tham số chuẩn tắc:
Vector tiếp tuyến đơn vị: Cho s là tham số tự nhiên của đường cong
Trang 13Độ cong và bán kính cong: Cho s là tham số tự nhiên và T là vector tiếp
tuyến đơn vị của đường cong r(t) Độ cong được định nghĩa như sau:
/
k dT ds
Xét đường tròn trên mặt phẳng mật tiếp đi qua điểm hiện thời r(t) và độ cong của nó bằng chính độ cong của đường cong tại điểm này Đường tròn này được gọi là đường tròn mật tiếp, bán kính của đường tròn mật tiếp được gọi là bán kính cong và được xác định bởi:
1
k
1.3 Mặt cong
1.3 1 Mô hình hóa mặt cong
Mô hình hóa các mặt cong ta có thể xây dựng được bằng ba cách sau:
a Mặt kẻ - Ruled Surface
Mặt kẻ được xây dựng bằng cách cho trượt một đoạn thẳng trên hai đường cong Hai đường cong này gọi là đường cong biên Các mặt kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai biên đối diện của mặt kẻ P1(u) và P2(u)
Trang 14Hình 1.4: Mô hình bề mặt kẻ
ta có phương trình mặt kẻ:
S(u,v) = P2(u)v + P1(u)(1-v)
nếu hai đường cong cho trước tương ứng là P1(v) và P2(v)
c Mặt trượt - Sweept Surface
Trang 15Hình 1.6: Mô hình mặt trượt Mặt trượt là mặt được tạo bằng cách trượt một thực thể theo một đường thẳng hoặc đường cong trong không gian Thực thể đó có thể là một đường thẳng, đa giác, một đường cong…
1.3.2 Biểu diễn mặt cong
Mặt cong được định nghĩa trực quan là quỹ đạo chuyển động của một đường cong tạo nên
Theo hình học vi phân, mặt cong được định nghĩa như là ảnh của phép ánh xạ tập hợp điểm trong không gian 2D vào không gian 3D và được biểu diễn bởi phương trình:
để biểu diễn phương trình tham biến cho mặt cong ta có thể:
Dựa vào việc xây dựng và tạo bề mặt toán học từ các điểm điều khiển,
Dựa vào việc xây dựng nên bề mặt phụ thuộc vào biến số có
Trang 17CHƯƠNG 2 B-SPLINE TRONG KHÔNG GIAN 2D VÀ 3D
Chương này trình bày về một số đường cong và mặt cong, trong đó chủ yếu là tìm hiểu về đường cong và mặt cong B-spline
2.1 Sơ lược về đường cong và mặt cong Bezier
Lý thuyết đường cong và mặt cong Bezier được phát minh bởi một kỹ
sư người Pháp có tên là Pierre Bezier trong quá trình thiết kế mẫu xe ô tô Bezier là nhân viên hãng RENAULT Vào những năm 1970 ông là người đi đầu trong việc ứng dụng máy tính cho việc xây dựng các bề mặt Hệ thống UNISURF của ông được áp dụng trong thực tế vào năm 1972 được thiết kế
và kiểm tra xe Mezesez hay Renault Điểm mạnh của lý thuyết Bezier là tính
dễ dàng và thuận tiện trong việc biểu diễn các đường cong và mặt cong Bezier đã sử dụng đa giác kiểm soát cho đường cong tại những đỉnh của đa giác và tiếp tuyến tại đó
2.1.1 Đường cong Bezier
Giả sử một đường cong Bezier C được tạo ra từ (n+1) điểm điều khiển P0,
P1, P2,…,Pn Kí hiệu tọa độ của mỗi điểm điều khiển là Pi(xi,yi,zi) trong đó 0 ≤
i ≤ n Tập hợp các điểm điều khiển ta gọi là đa giác kiểm soát (control polygon) Khi đó các điểm trên đường cong Bezier C được tính theo công thức [3]:
, 0
Trang 18thức:
C(t) = B0,1.P0 + B1,1.P1 = (1 - t)P0 + tP1, (0 ≤ t ≤ 1) (2.2) đường cong C đi qua 2 điểm P0 và P1 lúc này chính là đoạn thẳng P0P1như trong (hình 2.1a) Ta thấy C(t) là tuyến tính theo tham số t và ta gọi đó là đường cong Bezier bậc 1
Trường hợp có 3 điểm điều khiển P0, P1, P2 như trong (Hình 2.1b), ta có :
B0,2 = (1 - t)2
B1,2 = 2t(1 - t)
B2,2 = t2khi đó phương trình của đường cong C là :
C(t) = (1 - t)2P0 + 2t(1 - t)P1 + t2P2 (2.3)
Hình 2.1 : Đường cong Bezier bậc 1, 2, 3 C(t) trong công thức (2.3) lúc này được gọi là đường cong Bezier bậc 2 Công thức trên còn được xây dựng một cách tuần tự bằng thuật toán Casteljau cho ba điểm như sau:
Với mỗi giá trị 0 ≤ t ≤ 1 ta tính giá trị a(t) giữa hai điểm P0 và P1 :
e(t)
Trang 19C(t) = (1 - t)3P0 + 3t(1- t)2P1 + 3t2(1 - t)P2 + t3P3 (2.4) trong công thức (2.4), C(t) là một hàm bậc 3 theo biến t và được gọi là đường cong Bezier bậc 3 Công thức này cũng có thể xây dựng một cách tuần
tự bằng thuật toán Casteljau cho 4 điểm
Dạng biểu diễn ma trận của đường cong Bezier
Để thích hợp cho việc biểu diễn trên máy tính, ta biểu diễn 2 mảng
T
P P P
P P
Bi,n = a0 + a1t + a2t2 + …+ antn = (t0 , t1 , …, tn).(a0 ,a1 ,…an) (2.6) Đặt Pow(t) = (t0 , t1 , …, tn), Ben là ma trận biểu diễn mảng Bn(t), trong
đó mỗi hàng i của ma trận này ứng với các hệ số tương ứng (a0 ,a1 ,…an) của
đa thức Bi,n(t) và tại vị trí (i,j) trong ma trận Ben có giá trị :
Trang 20 Vẽ đường cong Bezier
Để tạo ra một đường cong Bezier từ một dãy các điểm điều khiển ta sẽ
áp dụng phương pháp lấy mẫu hàm C(t) ở các giá trị cách đều nhau của tham
số t, chẳng hạn có thể lấy ti = i/n, i = 0, 1, …, n Khi đó ta sẽ được các điểm C(ti) từ công thức Bezier
Nối các điểm này bằng các đoạn thẳng ta sẽ được đường cong Bezier gần đúng Để tính C(ti) ta có thể áp dụng ma trận C(t) ở công thức (2.8) trong
đó chỉ có thành phần Pow(ti) là thay đổi, còn tích Ben.PT với P = (P0, P1, P2,…,
Pn) là không đổi [3]
Các tính chất của đường cong Bezier
Đường cong Bezier có các tính chất :
Nội suy các điểm đầu và cuối : C(0) = P0 và C(1) = Pn
Tính bất biến affine : Khi biến đổi một đường cong Bezier, ta không cần biến đổi mọi điểm riêng rẽ trên đường cong mà chỉ cần biến đổi các điểm điều khiển của đường cong đó rồi sử dụng công thức Bernstein để tái tạo lại đường cong đã được biến đổi
Tính chất của bao lồi : Đường cong Bezier P(t) không bao giờ đi
ra ngoài bao lồi của nó Ở đây, bao lồi của các điểm điều khiển là tập đỉnh nhỏ nhất chứa tất cả các điểm điều khiển đó
Trang 21 Độ chính xác tuyến tính : Đường cong Bezier có thể trở thành một đường thẳng khi tất cả các điểm điều khiển nằm trên một đường thẳng vì khi đó bao lồi của chúng là một đường thẳng
Bất kỳ một đường thẳng hay mặt phẳng nào cũng luôn luôn cắt đường cong Bezier ít lần hơn so với cắt đa giác kiểm soát
Đạo hàm của đường cong Bezier là một đường cong Bezier khác
Bậc của đường cong Bezier tăng cùng với số điểm điều khiển, cụ thể đường cong Bezier C(t) với (n+1) điểm điều khiển là một đa thức bậc n của t Do đó khi số điểm điều khiển lớn quá trình tính toán sẽ trở lên phức tạp
2.1.2 Mặt cong Bezier
Ta có thể dùng các hàm trộn Bezier để mô tả và vẽ các mặt cong Đối với các mặt cong, ta biểu diễn chúng dưới dạng tham số qua một hàm vector với 2 tham số là u, v Dạng tổng quát của một mặt cong là [4] :
S(u, v) = (X(u, v), Y(u, v), Z(u, v))
< = > S(u, v) = X(u, v).i + Y(u, v).j + Z(u, v).k (2.10) khi u, v biến thiên trên một khoảng nào đó thì các hàm X(u, v), Y(u, v)
và Z(u, v) thay đổi giá trị, dó đó làm cho vị trí của S(u, v) thay đổi trong không gian 3 chiều
Ở đây, ta sẽ không biểu diễn các mặt cong bằng các hàm toán học tường minh mà sẽ biểu diễn chúng thông qua các điểm điều khiển Chẳng hạn :
S(u, v) = (1 - v).((1 - u).P00 + u.P10) + v.((1 - u).P01 + u.P11) dùng 4 điểm điều khiển ở 4 góc là Pij với các hàm trộn là tuyến tính theo u, v
Đường cong Bezier trong không gian 3 chiểu có thể được viết dưới dạng là một hàm của tham số v với K+1 điểm điều khiển tùy thuộc vào tham
số u theo một cách nào đó Chẳng hạn :
Trang 22, 0
Khi u biến thiên thì mỗi điểm điều khiển Pi(u) sẽ chạy trên một đường cong cụ thể Do đó, mặt cong có thể xem như là một sự dịch chuyển hay trượt đường Bezier trong không gian
Ta tưởng tượng một đa giác kiểm soát chuyển động trong không gian và thay đổi dạng khi chuyển động Ở mỗi vị trí, đa giác này tạo nên một đường cong Bezier và do đó tạo thành mặt cong trong quá trình trượt Giả sử ta có một mảng (n+1)(k+1) phần tử Các điểm điều khiển Pij, với 0 ≤ i ≤ n, 0 ≤ j ≤ k gọi là khối đa diện kiểm soát (control polyhedron) Khi đó các điểm trên mặt cong Bezier S được tính theo công thức :
Ta gọi đây là dạng tích Tensor cho băng Bezier
Để có mặt cong Bezier từ các đường cong Bezier ta coi mảng (n+1)(k+1) các điểm điều khiển Pij như là (n+1) mảng một chiều khác nhau, mỗi mảng gồm (k+1) điểm điều khiển Xây dựng đường cong Bezier từ (n+1) mảng điểm điều khiển đó ta sẽ được (n+1) đường cong Bezier Ta ký hiệu đường cong tương ứng với mảng điểm điều khiển thứ i là Ci, 0 ≤ i ≤ n và phương trình tham số của Ci là Ci(v), 0 ≤ i ≤ 1
Nói cách khác với mỗi giá trị 0 ≤ v ≤ 1 ta có (n+1) điểm nằm tương ứng trên các đường cong Ci, ta ký hiệu tập các điểm đó là {Ci(v)}, i = 0, 1, …, n Nếu ta tiếp tục sử dụng (n+1) điểm đó làm đa giác kiểm soát ta sẽ thu được một đường cong Bezier Có thể tưởng tượng rằng khi v tăng từ 0 đến 1 ta sẽ
Trang 23là cơ sở cho Spline, nghĩa là bất kỳ đường cong spline nào cũng có thể được đưa về cùng một công thức bằng cách chọn kiểu đa giác kiểm soát phù hợp Với mỗi vector có nhiều họ hàm như vậy, nhưng đặc biệt có một họ hàm trộn có đoạn mang giá trị khác 0 nhỏ nhất đó là Basic Spline (Được viết tắt là B-spline) Đối với các hàm B-spline, mỗi đa thức riêng phần tạo ra nó có một bậc m nào đó Do đó, thay vì dùng ký hiệu Ri(t) như trong phương trình
đường cong spline:
0
n
i i i
Trang 24hiệu các hàm trộn này là Nk,m(t) Khi đó, một đường cong B-spline bậc m-1 được xây dựng dựa trên vector nút T và (n+1) điểm điều khiển Pi có dạng:
, 0
n
i i m i
(2.13) trong đó:
Ni,m(t) gọi là hàm Cox-de Boor hay hàm cơ sở B-spline có cấp m (order m) và bậc (m-1) (degree m-1) là phương pháp chuẩn để định nghĩa hàm cơ
sở B-spline Ni,m(t) được cho bởi công thức đệ quy sau:
,1
1 ( )
0
i
Ta sẽ khảo sát hàm này để hiểu rõ tính chất hình học của chúng
Đặt là khoảng cách giữa hai điểm nút
Trang 25Ta có hình biểu diễn đường cong B-spline như trong (hình 2.3):
Hình 2.3: Đường cong B-spline 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ả Có các loại đường cong như sau[5]:
Đều tuần hoàn (Uniform)
Không tuần hoàn (Open or unperodic)
Với ti ≤ t ≤ ti+1
Với ti+1 ≤ t ≤ ti+2 (2.16)
Với các giá trị t khác
Trang 26 Không đều (Non - uniform)
2.2.2 Tính chất của đường cong B-spline
Hàm B-spline thực chất là dùng làm hàm trộn cho đường cong Bezier nên các tính chất của đường cong Bezier cũng thỏa cho đường cong B-spline:
Các đường B-spline bậc m là các đa thức từng phần bậc m Chúng
là các Spline
Các hàm B-spline bậc m tạo thành một cơ sở cho bất kỳ spline nào
có cùng bậc được định nghĩa trên cùng các nút Các spline có thể được biểu diễn như một tổ hợp tuyến tính của các B-spline
Một đường cong B-spline đóng dựa trên (n+1) điểm điều khiển có thể tạo ra bằng cách dùng phương trình đường cong B-spline tuần hoàn sau:
0, 0
Mỗi hàm B-spline Ni,m(t) là không âm với mọi t
Các đường cong dựa trên các B-spline là bất biến affine Do đó, để biến đổi một đường cong B-spline, ta chỉ cần biến đổi các điểm điều khiển, sau đó khởi tạo lại đường cong từ các điểm điều khiển đã được biến đổi này
Một đường cong B-spline sẽ nằm trong bao lồi của các điểm điều khiển
Độ chính xác tuyến tính của đường cong B-spline : Nếu m điểm điều khiển kề nhau là tuyến tính cùng nhau thì bao lồi của chúng là một đường thẳng Do đó đường cong cũng sẽ trở thành đường thẳng
Tính chất giảm độ biến thiên : số giao điểm giữa đường cong spline với bất kỳ một mặt phẳng nào (nếu có) luôn luôn nhỏ hơn số
Trang 27giao điểm (Nếu có) giữa đa giác kiểm soát của nó với mặt phẳng đó
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 là các quan hệ ràng buộc :
0 t n m 2 ( 2.18)
2.2.3 Đường cong B-Spline đều và không đều
Đường cong B-spline đều được xây dựng trên Vector đều Vector nút là đều khi giá trị của chúng cách đều nhau một khoảng xác định
Trong các bài toán thực tế, thông thường thì khoảng xác định của tham
số biến nằm trong đoạn từ 0 đến 1 hay từ 00 đến 3600 thì việc chọn giá trị của các vector nút được chuẩn hóa trong đoạn từ [0 ;1] hay [00 ;3600]
Ví dụ 2.2 : Các Vector nút đều
T1=[0.2 0.4 0.6 0.8 1.0] có = 0.2
T2=[00 1200 2400 3600] có = 1200Đường cong B-spline không đều được xây dựng dựa vào 2 thành phần là chuỗi điểm 3D cho trước {Pj} và hàm cơ sở B-spline (bậc 2)
V0 = Pi-2; V1 = Pi-1; V2 = Pi;
Trang 28cả khi miền tham số xác định là [ti, ti+1] Tuy nhiên các điểm biên ti-2 và ti+3không cần thiết bởi vì dữ liệu này không được sử dụng để xác định đường cong Do đó đường cong NURBS bậc 2 hoàn toàn được xác định bởi 3 giá trị bước nút i1 , i, i1 và 3 điểm điều khiển V0 , V1 , V2
Tương tự ta có đường cong NURBS bậc 3 có dạng như sau:
4
1 3
Trang 29Dựng đường cong phức hợp B-Spline đều
Xét phương pháp dựng đường cong phức hợp trơn láng đi qua chuỗi điểm {Pi : i=0,…,n} sử dụng mô hình đường cong B-spline đều Đường cong kết quả bao gồm nhiều đoạn đường cong B-spline đều bậc 3 kết nối theo điều kiện liên tục C2
Ví dụ nút gán thêm điểm điều khiển 3
b
V
cho đoạn đường cong B-spline đều trên (Hình 2.5), chúng ta sẽ có đoạn đường cong mới (Hình 2.4) Phương trình của 2 đường cong có dạng :
ra(u) = U N Ra ; rb(u) = U N Rb (2.23) trong đó: U [1 u u2 u3];
;
a
a a
a
a
V V R
V V
;
b
b b
b
b
V V R
V V
Trang 30và đạo hàm của chúng thực sự bằng nhau
theo điều kiện liên tục C2, ta có:
ra(0) = ra(1); r &b(0) r &a(1) ; r &b(0) r &a(1) (2.25) Như vậy để dựng đường cong B-Spline đều phức hợp từ chuỗi (n+1) điểm {Pi : i=0,…,n} tương đương với việc xác định (n+3) đỉnh điểu khiển {Vi : i=0, 1, …,n+2} Từ điều kiện liên tục vị trí ta có:
Vi + 4Vi+1 + Vi+2 = 6Pi , Với i = 0,1,…,n (2.26)
Khi tiếp tuyến đầu cuối được cho trước ta có thêm 2 phương trình:
Trang 310 0
1 1
0
1 1
Trang 32(n+3) điểm điều khiển {Vi : i=0, 1, …,n+2}
Trong cả 2 phép dựng hình chúng ta đều sử dụng điều kiện liên tục tham
số C2, tức là tại điểm kết nối Pi ta sử dụng chung một vector tiếp tuyến ti cho
cả 2 đoạn đường cong:
2.2.4 Đường cong B-Spline hữu tỷ đều và không đều
Đường cong spline hữu tỷ không đều (Non-Uniform Rational spline viết tắt là NURBS) được tạo thành từ các Vector nút không đều
Trong các 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 thỏa mãn thì vector nút là không đều
Một đường cong B-spline hữu tỷ không đều bậc m-1 đươc xây dựng dựa trên vector nút T và (n+1) điểm điều khiển Pi có dạng:
,
0
( ) ( )
w ( )
n
i i i m n
Trong đó Ni,m là hàm Cox-de Boor được định nghĩa như trong công thức
(2.13), Wi là trọng số của các điểm điều khiển Nếu các trọng số là bằng nhau thì đường cong trở thành dạng đa thức
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 của Vector nút, chẳng hạn vector nút [0 1 2 2 3 4 5]
là các vector không đều Hoặc ta có thể tạo ra bước nhảy không bằng nhau