domingo, 15 de abril de 2007

IMPLEMENTACION DE CURVAS Y SUPERFICIES CON NURBS

Los NURBS (Non-Uniform Rational B-Splines) son entes matemáticos que definen exactamente una curva o superfice a partir de varios puntos de control, no necesariamente pertenecientes a la trayectoria, y unos pesos asociados a los mismos.
Cuanto mayor sea la complejidad de la curva, mayor será el número de puntos de control que deberá especificarse, pero, en todo caso, el número de puntos generados será menor que el necesario utilizando la aproximación tradicional por tramos rectos.

Curvas Nurbs
Son una herramienta importante para trabajar en 3D. Pueden ser una forma simple de modelar una superficie o un avanzado control para la animación, se definen por puntos de control, que controlan la forma de la curva. También consta de otros tipos de punto como los editables, que indica el principio o final de un segmento, y rectas que unen los puntos de control en una curva.

La geometría de la curva se define por: grados, puntos de control, nodos y regla de calculo.

Superficies Nurbs
Tienen los principios de las curvas nurbs, y se aplican igual, sin embargo una diferencia entre curvas y superficies es que las curvas se sometena una sola direccion y la superficie es bidireccional, estas bidireccion tiene un origen llamado normal, que determina la parte frontal o trasera de la misma.

Funciones básicas B-spline
Sea U = {u0, u1, . . . , ul} una secuencia no decreciente de números reales, es decir,
ui ≤ ui+1, i = 0, . . . , l−1. Los ui se denominan nodos y U vector de nodos. La i-esima función básica B-spline de grado p (orden p + 1), denotada por Ni,p(u), está definida recursivamente:
Nótese que las funciones Ni,0(u), i = 0, . . . , m son funciones salto, idénticamente nulas excepto en el intervalo semiabierto [ui, ui+1) (el cual puede tener longitud cero, pues ambos nodos pueden ser iguales). En cambio, para p > 0 la función Ni,p(u) es una combinación lineal de dos funciones básicas de grado (p−1). Por supuesto, la computación de las funciones básicas requiere especificar el vector de nodos U y
el grado p. La derivada de una función básica viene dada por:
Derivando sucesivas veces la expresión (2) obtenemos Nk i,p(u), la derivada k-esima de Ni,p(u), como
2.2 Superficies NURBS
Las superficies mas ampliamente usadas en los procesos de diseño en la industria son las superficies NURBS. Ello se explica por sus grandes ventajas, entre las que figuran sus capacidades para el diseño interactivo y su habilidad para representar de manera precisa formas cerradas, como cónicas y cuadricas. Además, las superficies NURBS incluyen a las superficies B-spline como casos particulares.
De hecho, muchas aplicaciones de CAD/CAM, realidad virtual, animación y visualización usan modelos basados en superficies NURBS y estas superficies están incluidas en muchos de los formatos mas populares en la industria, como IGES. También muchos estándares gráficos mas recientes, tales como PHIGS+ y OpenGL incluyen las superficies NURBS entre sus primitivas gráficas.
Una superficie NURBS9 S(u,v) de grado (p, q) es una función racional bivariada de la forma:
donde {wij}i,j representan los valores escalares de los pesos asociados a los puntos de control {Pij}i=0,...,n;j=0,...,m y con vectores de nodos U y V definidos .
2.3 Derivadas de superficies NURBS
Las derivadas de una superficie NURBS pueden calcularse a partir de las derivadas de A(u, v) y w(u, v) (el numerador y el denominador de la expresión (4) respectivamente) como:
donde dichas derivadas pueden ser fácilmente calculadas a partir de la expresión (3). La expresión (5) indica también que las derivadas de una superficie NURBS se obtienen de forma recursiva y que es posible su computación aplicando un esquema distribuido.

No hay comentarios: