B-Splines dan Beziers adalah penemuan paralel dari hal yang kurang lebih sama. Di mana Beziers mencoba memulai dari gagasan tentang pas singgung. B-Splines mulai dengan gagasan fungsi dasar. NURB Splines (atau bagian rasionalnya sebenarnya) hanyalah generalisasi dari B-Splines sehingga Anda dapat menggambarkan bagian kerucut yang akurat *, karena mereka memiliki minat khusus dalam bidang teknik.
Pertama mari kita mulai dengan terminologi NURB Spline sederhana. Alasan kurva ini sedikit berbeda dari Beziers. Pertama ada konsep span. Suatu rentang kira-kira akan setara dengan seluruh spline Bezier kecuali di nurbs Anda dapat memiliki sejumlah bentang.
Gambar 1 : Satu rentang NURBS kubik. Ini agak atipikal dalam formulasi
Setiap rentang dibentuk oleh derajat kurva + 1 titik kontrol **. Setiap kurva dapat terdiri dari sejumlah titik. Setiap rentang berturut-turut menggunakan kembali poin dari rentang sebelumnya dengan menjatuhkan satu poin dan mengambil satu poin lagi dalam daftar. Jadi membuat kurva yang lebih kompleks semudah menambahkan lebih banyak poin ke kurva.
CATATAN : Kurva gambar sedikit parametrik, tidak bisa menjelaskan apa artinya ini di bagian selanjutnya. Ketika saya mengambil konsep knot. Ini hanya cara yang lebih mudah untuk menjelaskan bagaimana kurva saling menempel.
Gambar 2 : 2 bentang kubik satu sama lain, setiap rentang menggunakan 4 poin. bersama-sama mereka membentuk satu kurva. Mereka berbagi poin paling banyak satu sama lain.
Sekarang kita mungkin telah menjawab 2 pertanyaan tentang menambah kompleksitas. Tetapi saya ingin menambahkan bahwa skema ini memastikan kontinuitas yang lebih baik daripada kurva bezier. Selain itu Anda dapat membuat array titik yang membentuk siklus lambung. Membentuk kurva tertutup.
Gambar 3 : Permukaan NURBS kubik tertutup memiliki bentang sebanyak yang memiliki poin. Setiap warna adalah satu rentang.
Parametrization
Sampai titik ini orang bisa mengatakan bahwa merangkai bentang adalah trik seperti "menjahit" kurva Bezier. Tetapi ada perbedaan. Kurva parametrisized sepanjang panjangnya. Jadi kurva tidak terpisah mereka tidak menyisipkan bentuk 0 ke 1 pada setiap rentang seperti Beziers lakukan. Alih-alih kurva yang mendasarinya memiliki rentang parameter yang dapat disesuaikan Parameter disimpan dalam sesuatu yang disebut simpul, dan masing-masing simpul dapat memiliki nilai yang meningkat secara acak dalam urutan. Jadi Anda dapat parametrize seluruh kurva rentang u ke 0 - 1 atau 0 hingga 12. Parametriisasi juga tidak harus seragam.
Parameterisasi ini mengubah cara kurva dibentuk. Mengapa ini berguna? Nah, Anda bisa mengatur ketegangan di sepanjang kurva untuk satu. Atau Anda bisa menyandikan panjang kurva ke parameter U. Salah satu kegunaan aneh adalah untuk membuat kurva NURBS bertindak seperti kurva Bezier baik sepenuhnya atau hanya sebagian (bezier seperti di ujung tetapi tidak di tengah misalnya).
Gambar 4 : Poin yang sama menunjukkan urutan simpul yang berbeda. Kurva NURBS hijau sesuai dengan kurva Bezier yang memiliki rentang parameter 0-2 bukannya 0-1
Ok jadi apa simpulnya? Mereka hanyalah rentang fungsi dasar. Karena b-spline kubik dengan 4 poin memiliki 4 fungsi interpolasi, ia membutuhkan 8 knot. Hanya area di mana 3 fungsi tumpang tindih dan jumlah hingga 1,0 yang dapat ditarik garis.
Gambar 5 : 2 fungsi dasar yang berbeda, seperti bezier dan parametrisasi segmen yang seragam, menyebar ke kisaran 0-1.
Dan sekarang sebagian besar kita telah menjelaskan jawaban untuk pertanyaan 1. Rentang tidak ditentukan, Anda dapat meregangkan fungsi basis sesuai keinginan Anda. Dan akhirnya simpul vektor hanya menghasilkan rentang parameter untuk fungsi dasar. Masih ada satu hal lagi yang mengatur bentuk kurva dan itu adalah vektor bobot. Tapi itu cerita lain yang bisa diceritakan di tempat lain.
* Rasional ini dalam hal ini berarti bahwa kurva NURBS tidak harus berupa polinomial, karena Anda tidak dapat menggambarkan lingkaran dengan polinomial.
** Seseorang dapat menentukan jenis poin lainnya.