Knot Vektörleri Nedir?
NURBS knot vectors - Curve/surface parametrizasyonunu kontrol eden temel yapı.
Knot vector, NURBS curve ve surface'lerin parametrizasyonunu belirleyen sayıların sıralı listesidir. NURBS'ün 'Non-Uniform' kısmının sırrı bu knot vector'lerdedir. Knot'ların yerleşimi, eğrinin smoothness'ini ve CV'lerin etkisini doğrudan kontrol eder.
Knot Vector Temelleri
- Knot: Parametre ekseninde (u veya v) bir değer
- Knot vector: Artan sırada knot'ların listesi
- Örnek: [0, 0, 0, 1, 2, 3, 3, 3] (degree 2 için)
- Knot sayısı = CV sayısı + degree + 1
- Multiplicity: Aynı knot'un tekrar sayısı
- Span: İki ardışık unique knot arası segment
- Parameter domain: İlk ve son knot arası aralık
Uniform vs Non-Uniform Knots
- Uniform: Eşit aralıklı knot'lar (0, 1, 2, 3, 4...)
- Uniform: CV'ler curve'e eşit etkide bulunur
- Non-uniform: Farklı aralıklar (0, 0, 0, 1, 5, 10, 10, 10)
- Non-uniform: Local control, CV etkisi ayarlanabilir
- NURBS 'Non-Uniform' buradan gelir
- Rhino çoğunlukla non-uniform knot kullanır
- Periodic knots: Kapalı curve için (wrap-around)
Knot Multiplicity ve Continuity
- Multiplicity 1: Full smoothness (Cn-1 continuity)
- Multiplicity 2: C0 continuity (pozisyon continuous)
- Multiplicity = degree: C-1 (kink, keskin köşe)
- Multiplicity = degree + 1: Curve CV'den geçer (endpoint)
- Clamped knots: Başta ve sonda degree+1 multiplicity
- Clamped: Curve ilk ve son CV'den başlar/biter
- InsertKnot komutu: Knot ekle, curve shape'i değişmez
Knot Vector Örnekleri
- Degree 3, 7 CV: [0,0,0,0, 1,2,3, 3,3,3,3] (clamped, uniform spans)
- Degree 2, 5 CV: [0,0,0, 1,2, 2,2,2] (clamped)
- Periodic degree 3, 6 CV: [0,1,2,3,4,5,6,7,8,9] (kapalı curve)
- Non-uniform: [0,0,0, 1,3,7, 7,7,7] (farklı span uzunlukları)
- Rhino'da: What komutu knot vector gösterir
- GhPython: curve.Knots property ile erişilebilir
- Knot editing: Manuel knot vektör edit nadiren gerekir
Knot Insertion ve Removal
- Knot insertion: Yeni CV ekle (shape değişmez)
- InsertKnot: Rhino komutu, belirtilen u değerinde knot ekler
- CV ekleme: Local control artar, dosya boyutu büyür
- Knot removal: Tersine işlem, CV azalt
- RemoveKnot: Shape biraz değişebilir (tolerance içinde)
- Rebuild: Tüm knot vector'ü yeniden oluştur
- DegreeElevation: Degree arttır, knot multiplicity artar