Grafik boyama yapan mühendislik yazılımlarının birbirleri arasında geometri verisi paylaşımı yapabilmeleri için standart çalışmaları yapılmış ve bilinen pek çok dosya tipleri tanımlanmıştır. Bunlardan bazıları: IGES, STEP, Parasolid (Siemens NX firması), ACIS-Sat (Spatial firması), Dxf (Autodesk firması), STL, VRML... dosyalarıdır.
Örneğin IGES ve STEP standartları açıktır ve tanımlamaları ticari ödeme yapılmadan kullanılabilmektedir. Parasolid gibi ticari anlaşmalar ile kullanılan sistemlerde vardır. Örneğin Siemens NX firması geometri motoru olarak Parasolid kernelini hem veri transferi amaçlı, hem de geliştiricilerin kendi uygulamalarında kullanmaları amaçlı lisans anlaşmaları ile ticari olarak satmaktadır.
IGES dokümanı tam sayılar, gerçek sayılar, karakter dizileri (katarlar) gibi temel veri tiplerini tanımlar. Ürün bilgisinin yazılacağı IGES – iges uzantılı belgeler ASCII karakterleri ile yazılan metin dosyalarıdır. Bu dosyanın formatı oldukça belirli bir şekilde bölümleri ile açıklanmıştır.
Bu temel tanımları kullanan geometrik, topolojik ve benzeri birçok eleman tipleri dosyaya yazdırılarak bir tasarım yazılımından diğerine aktarım yapılabilir. IGES dokümanı "entity" olarak isimlendirdiği elemanları da detaylı olarak tanımlar. Bunlardan geometri bilgisi aktarmak için kullanılan temel yapılar aşağıda listelenmiştir:
| Eleman Tip Kodu | Eleman Tipi |
|---|---|
| 100 | Dairesel Ark |
| 102 | Kompozit Eğri |
| 104 | Konik Ark |
| 106 | Poligon |
| 108/11 | 2D Lineer Yol |
| 108/12 | 3D Lineer Yol |
| 108/83 | Düzlemde Kapalı Yol |
| 110 | Düzlem |
| 112 | Çizgi |
| 114 | Parametrik Spline Eğri |
| 116 | Parametrik Spline Yüzey |
| 118 | Nokta |
| 120 | Işın Yüzey |
| 122 | Döndürülmüş Yüzey |
| 124 | Ekstrüzyon Yüzey |
| 126 | Transformasyon Matrisi |
| 128 | Flash |
| 130 | Rasyonel B-Spline Eğri |
| 132 | Rasyonel B-Spline Yüzey |
| 140 | Ofset Eğri |
| 141 | Ofset Yüzey |
| 142 | Sınır |
| 143 | Parametrik Yüzey Üzerinde Eğri |
| 144 | Sınırlandırılmış Yüzey |
| 146 | Kesilmiş Parametrik Yüzey |
| 190 | Düzlem Yüzey |
| 192 | Sağ Dairesel Silindirik Yüzey |
| 194 | Sağ Dairesel Konik Yüzey |
| 196 | Küre Yüzey |
Aşağıdaki resimde sol tarafta görülen katı cisimin geometri bilgisini IGES dosyası ile aktarırız, tipi 144 olan 7 adet kesilmiş parametrik yüzey içeren bir dosya oluşabilir.
En üstte üzerinde delik olan yüzeyi ele alalım. Bu yüzey bilgisini içeren kesilmiş parametrik yüzey öncelikle bir kesilmemiş yüzey tanımı içeren başka tipe işaretçi verir. Kesilmemiş yüzey herhangi bir parametrik yüzey olabilir. Raylı yüzey (118), ekstrüzyon (122) veya Rasyonel B-spline yüzey (128) aynı geometriyi tanımlamak için kullanılabilir. Yüzeyi u ve v parametreleri ile noktalara çeviren kesilmemiş parametrik yüzeyi nasıl sınırlandıracağımız bilgisini vermek için yine işaretçi kullanılır. Bu defa işaretçi yüzeyin dış sınırları ve içinde kalan boşaltmalar için Parametrik yüzey üzerinde eğri elemanlarına işaret eder. 142 koduyla tanımlanan bu parametrik yüzey üzerinde eğri elemanları farklı parametrik eğri tipleri kullanarak yüzeyin parametre uzayındaki 2 boyutlu u, v noktaları üreten ve/veya üç boyutlu uzayda yer alan ama hepsi yüzeyin üzerinde olan eğriler işaret eder. Bu eğriler dairesel ark (100), konik ark (104), rasyonel b-spline eğriler (126), polylineler (106) olabilir. Kompozit eğriler (102) ise uç noktaları birbirine değen arka arkaya eğrilerden oluşur. Parametrik yüzeydeki eğri nesneleri kompozit eğrileri de kullanabilir.
İlk örnek olarak polinom B-spline eğrileri gösterebiliriz. B-spline eğriler, t0, t1 aralığında verilen t parametresini uzayda bir noktaya dönüştüren matematiksel fonksiyonlardır. Parametrik eğri kümesi içindedirler.
\[ C(t) = \vec{P} \begin{pmatrix} x_c \\ y_c \\ z_c \end{pmatrix} \]
B-spline eğri tanımlamak için bir dizi kontrol noktası ve bir dizi knot sayıları verilir. Knot diye adlandırılan t parametresi aralıklardır. B-spline eğrinin derecesi de verilir. 2. derece kuadratik, 3. derece kübik B-spline olarak da isimlendirilir. Derecesi p olan bir B-spline eğride en az p+1 kontrol noktası verilmelidir. Knot sayısı ise kontrol noktası sayısı + p+1 olmalıdır.
Örneğin 2. derece B-spline bir eğri için 3 kontrol noktası ve 6 elemandan oluşan knot dizisi doğrudur ve fonksiyon kullanılarak verilen knot dizisi aralığındaki t parametreleri girdi olduğunda uzayda 3 boyutlu bir nokta üretilir. \(C(t) = \vec{P}(x,y,z)\) elde edilir.
Derece p = 2. Kontrol noktaları dizisi: \[ \vec{C_0} = \begin{pmatrix} 0.5 \\ 1.2 \\ 3.1 \end{pmatrix} \] \[ \vec{C_1} = \begin{pmatrix} -1.3 \\ 1.4 \\ 3.1 \end{pmatrix} \] \[ \vec{C_2} = \begin{pmatrix} -1.6 \\ 1.6 \\3.1 \end{pmatrix} \] knot dizisi: { 0, 0, 0, 1, 1, 1 }
Yukarıdaki örneğe kontrol noktası kadar ağırlık sayısı içeren bir dizi eklenebilir. w = { 2.0, 1.5, 2.0 } gibi. Bu durumda B-spline eğrinin ismi rasyonel B-spline eğrisi olarak değişir. (ratio - oransal) Bu ağırlık katsayıları kullanılmadan daire, elips gibi şekiller B-spline matematiği ile elde edilemez. Knot dizisi aralıkları sürekli eşit olursa buna uniform sıfatı verilir. Yine daire, parabol, elips gibi şekiller ve çoğu geometrik şekil için non-uniform parametre aralıkları kullanılmalıdır. Knot dizisinde arka arkaya aynı t parametresi olabilir ya da aralıkların uzunlukları değişebilir. Bütün bu özellikleri ifade eden NURBS kısaltması non-uniform rational B-spline eğri ve yüzeyler için kullanılır.
Aşağıdaki resimde mavi çizgilerin uçlarındaki noktalar kontrol noktalarıdır, 3. derece non-uniform rasyonel B-spline eğrinin bütün noktaları siyah eğriyi oluşturur.
Bir eğri ya da yüzeyin sonsuz noktalarını tanımlayan matematik model ne olursa olsun ekran kartları çizim yapmak için genelde temel konveks geometri kullanır. Arka arkaya çizgiler ile polylineler, üçgen dizileri gibi ilkel veri tiplerini yazılımlar belli toleranslar (çözünürlükler) ile üretir.
Yukarıdaki NURBS eğrinin daha düşük çözünürlük ile sayısallaştırıldığı çizim.
Kontrol noktalarının değişimi ile şekiller değişir.
NURBS eğriler robotik sistemlerde hareket yörüngelerinin tanımı , yazı fontlarının ölçeklenebilir modellerinin kayıt edilmesi , sınır temsili ”boundary representation” modellemede yüzeylerin limitlerini yani kenar eğrilerini tanımlamak gibi bir çok uygulamada kullanılabilir. C(0) süreklilik noktasal sürekliliği , C(1) süreklilik teğet doğrultusundaki değişikliğin sürekliliğini , C(2) ise teğetin türevinin değişimindeki sürekliliği ifade etmek için kullanılır. NURBS eğriler ile yüksek süreklilik gerektiren modeller oluşturulabilir. Bu süreklilik örneğin bir robot ya da bir makinede farklı motorları sürerek elde edilen takım ucu yörüngesi için kullanıldığında titreşimler azalır , enerji kullanım verimliliği artar. Ya da üzerinden akışkanın geçtiği bir pervanenin yüzey modelinde yüksek süreklilik istenilebilir. Bu tip modellemelerde noktasal konumun türevi hızı , hızın türevide doğal olarak ivmeyi gösterir.
NURBS eğriler bir tane t parametresi ile nokta üretirken NURBS yüzeylerde u,v olarak isimlendirilen iki parametre ile nokta üretilir. Kontrol noktaları grid-ızgara yapısı şeklinde iki boyutlu bir dizi ile verilir P(i,j) i [0,m] aralığında j [0,n] aralığında bir indeks sayısıdır.
Kontrol noktaları sayısı u parametresi yönünde m+1 , v parametresi yönünde n+1 adet olur.
Spline polynom fonksiyon derecesi u yönünde p , v yönünde q sayısı ile verilir. Knot dizileri olarak verilen u,v aralıkları iki ayrı dizi ile tanımlanır. Opsiyonel olarak rasyonel yüzeylerde ağırlıklar kontrol noktaları gibi iki boyutlu dizi ile tanımlanır. W(i,j)
Derece , kontrol noktası , ağırlıklar ve knot sayıları arasındaki formüller tek boyuttaki eğri ile aynı şekilde iki ayrı u,v doğrultuları için ayrı ayrı hesaplanabilir.
Aynı NURBS eğrilerdeki gibi NURBS yüzeylerde kontrol noktaları ile sayı üretirler. Bunu yaparken u ve v parametreleri doğrultusunda Blending (harmanlama) ile çalışırlar.