B-Splines và Beziers là những phát minh song song ít nhiều giống nhau. Nơi Beziers cố gắng bắt đầu từ ý tưởng phù hợp với tiếp tuyến. B-Splines bắt đầu với ý tưởng về các chức năng cơ bản. NURB Splines (hoặc phần hợp lý trong thực tế) chỉ là những khái quát của B-Splines để bạn có thể mô tả các phần hình nón chính xác *, vì chúng đặc biệt quan tâm đến kỹ thuật.
Trước tiên chúng ta hãy bắt đầu với một thuật ngữ Spline NURB đơn giản. Lý do của những đường cong này là một chút khác biệt so với Beziers. Đầu tiên là khái niệm về một nhịp. Một nhịp sẽ tương đương với toàn bộ spline Bezier ngoại trừ trong các lần nâng cấp, bạn có thể có bất kỳ số nhịp nào.
Hình 1 : Một nhịp NURBS khối. Đây là một chút không điển hình trong công thức
Mỗi nhịp được hình thành bởi độ cong + 1 điểm kiểm soát **. Mỗi đường cong có thể bao gồm bất kỳ số điểm. Mỗi nhịp liên tiếp sử dụng lại các điểm hình thành nhịp trước đó bằng cách bỏ một điểm và lấy thêm một điểm trong danh sách. Vì vậy, tạo các đường cong phức tạp hơn cũng dễ như chỉ cần thêm nhiều điểm vào đường cong.
LƯU Ý : Các đường cong hình ảnh có một chút tham số không điển hình, không giải thích điều này có nghĩa là gì trong phần tiếp theo. Khi tôi lấy khái niệm nút thắt lên. Đây chỉ là một cách dễ dàng hơn để giải thích làm thế nào các đường cong keo dính với nhau.
Hình 2 : 2 khối kéo dài nhau, mỗi nhịp sử dụng 4 điểm. cùng nhau chúng tạo thành một đường cong. Họ chia sẻ hầu hết các điểm với nhau.
Đến bây giờ có lẽ chúng tôi đã trả lời 2 câu hỏi về việc thêm độ phức tạp. Nhưng tôi muốn thêm rằng sơ đồ này đảm bảo tính liên tục tốt hơn so với đường cong bezier. Ngoài ra, bạn có thể tạo mảng điểm tạo thành chu kỳ thân tàu. Tạo thành một đường cong kín.
Hình 3 : Một bề mặt NURBS hình khối kín có nhiều nhịp như nó có điểm. Mỗi màu là một nhịp.
Tham số hóa
Cho đến thời điểm này, người ta chỉ có thể nói rằng việc xâu chuỗi các nhịp lại với nhau là một mẹo giống như "khâu" các đường cong Bezier. Nhưng có một sự khác biệt. Các đường cong được tham số hóa dọc theo chiều dài của nó. Vì vậy, các đường cong không tách rời nhau, chúng không nội suy dạng 0 đến 1 trên mỗi nhịp như Beziers làm. Thay vào đó, đường cong bên dưới có một phạm vi tham số cusomizable. Tham số được lưu trữ trong một cái gì đó gọi là nút thắt và mỗi nút có thể có giá trị tăng tùy ý trong chuỗi. Vì vậy, bạn có thể tham số toàn bộ các đường cong u trong phạm vi 0 - 1 hoặc 0 đến 12. Các tham số cũng không nhất thiết phải đồng nhất.
Thông số này thay đổi cách đường cong được định hình. Tại sao điều này sẽ hữu ích? Vâng, bạn có thể điều chỉnh độ căng dọc theo đường cong cho một. Hoặc bạn có thể mã hóa độ dài của đường cong thành tham số U. Một cách sử dụng đặc biệt là làm cho đường cong NURBS hoạt động giống như đường cong Bezier hoàn toàn hoặc chỉ một phần (ví dụ như ở phần cuối chứ không phải ở giữa).
Hình 4 : Điểm giống nhau trình tự nút khác nhau. Đường cong NURBS màu xanh lá cây tương ứng với đường cong Bezier có phạm vi tham số 0-2 thay vì 0-1
Ok vậy các nút thắt là gì? Chúng chỉ đơn giản là phạm vi của các chức năng cơ bản. Vì khối b-spline có 4 điểm có 4 hàm nội suy nên nó cần 8 hải lý. Chỉ các khu vực có 3 hàm chồng lấp và tổng hợp lên tới 1.0 mới có thể vẽ một đường.
Hình ảnh 5 : 2 chức năng cơ bản khác nhau, giống như và một tham số phân đoạn thống nhất, trải rộng đến phạm vi 0-1.
Và bây giờ chúng tôi chủ yếu mô tả câu trả lời cho câu hỏi 1. Phạm vi không được xác định, bạn có thể kéo dài các hàm cơ bản khi bạn thấy phù hợp. Và cuối cùng, vectơ nút chỉ đơn giản tạo ra các phạm vi tham số cho các hàm cơ sở. Vẫn còn một điều nữa chi phối hình dạng của đường cong và đó là vectơ trọng lượng. Nhưng đó là một câu chuyện khác được kể ở nơi khác.
* Hợp lý này trong trường hợp này có nghĩa là đường cong NURBS không phải là đa thức, vì bạn không thể mô tả một vòng tròn với đa thức.
** Người ta có thể định nghĩa các loại điểm khác.