İçeriğe geç
Rhino Türkiye

Wiki

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

Kaynak

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)

Kaynak

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

Kaynak

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

Kaynak

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

Kaynak