La spline de base racional no uniforme ( NURBS ) es un modelo matemático que utiliza splines de base (B-splines) que se usa comúnmente en gráficos por computadora para representar curvas y superficies . Ofrece una gran flexibilidad y precisión para manejar formas analíticas (definidas por fórmulas matemáticas comunes ) y modeladas . Es un tipo de modelado de curvas , a diferencia del modelado poligonal o la escultura digital . Las curvas NURBS se utilizan comúnmente en diseño asistido por computadora (CAD), fabricación (CAM) e ingeniería.(CAE). Forman parte de numerosos estándares industriales, como IGES , STEP , ACIS y PHIGS . Las herramientas para crear y editar superficies NURBS se encuentran en varios paquetes de software de animación y gráficos 3D .
Pueden ser manejados de manera eficiente por programas de computadora pero permiten una fácil interacción humana. Las superficies NURBS son funciones de dos parámetros que se asignan a una superficie en un espacio tridimensional . La forma de la superficie está determinada por puntos de control . En una forma compacta, las superficies NURBS pueden representar formas geométricas simples . Para formas orgánicas complejas, las T-splines y las superficies de subdivisión son más adecuadas porque reducen a la mitad el número de puntos de control en comparación con las superficies NURBS.
En general, la edición de curvas y superficies NURBS es intuitiva y predecible. [ cita requerida ] Los puntos de control siempre están conectados directamente a la curva o superficie, o actúan como si estuvieran conectados por una banda elástica. Dependiendo del tipo de interfaz de usuario, la edición de las curvas y superficies NURBS puede realizarse a través de sus puntos de control (similares a las curvas de Bézier ) o mediante herramientas de nivel superior como el modelado de splines y la edición jerárquica .
Antecedentes históricos
Antes de las computadoras, los diseños se dibujaban a mano en papel con varias herramientas de dibujo . Se usaron reglas para líneas rectas, brújulas para círculos y transportadores para ángulos. Pero muchas formas, como la curva de forma libre de la proa de un barco, no se pueden dibujar con estas herramientas. Aunque tales curvas podían dibujarse a mano alzada en el tablero de dibujo, los constructores de barcos a menudo necesitaban una versión de tamaño natural que no se podía hacer a mano. Estos dibujos grandes se hicieron con la ayuda de tiras flexibles de madera, llamadas estrías. Las ranuras se mantuvieron en su lugar en varios puntos predeterminados, llamados "patos"; entre los patos, la elasticidad del material estriado hizo que la tira tomara la forma que minimizaba la energía de flexión, creando así la forma más suave posible que se ajustaba a las limitaciones. La forma se puede ajustar moviendo los patos. [1]
En 1946, los matemáticos comenzaron a estudiar la forma spline y derivaron la fórmula polinomial por partes conocida como curva spline o función spline. IJ Schoenberg dio a la función spline su nombre por su parecido con el spline mecánico utilizado por los dibujantes. [2]
A medida que se introdujeron las computadoras en el proceso de diseño, se investigaron las propiedades físicas de tales splines para poder modelarlas con precisión matemática y reproducirlas donde fuera necesario. El trabajo pionero fue hecho en Francia por Renault ingeniero Pierre Bézier , y Citroën 'físico y matemático s Paul de Casteljau . Trabajaron casi en paralelo, pero debido a que Bézier publicó los resultados de su trabajo, las curvas de Bézier recibieron su nombre, mientras que el nombre de De Casteljau solo se asocia con algoritmos relacionados.
Al principio, las NURBS solo se usaban en los paquetes CAD patentados de las empresas de automóviles. Más tarde se convirtieron en parte de los paquetes estándar de gráficos por computadora.
La representación interactiva en tiempo real de las curvas y superficies NURBS se comercializó por primera vez en las estaciones de trabajo Silicon Graphics en 1989. En 1993, CAS Berlin, una pequeña empresa de nueva creación que coopera con la empresa CAS Berlin, desarrolló el primer modelizador interactivo NURBS para PC, llamado NöRBS. Universidad Técnica de Berlín .
Continuidad
Una superficie en construcción, por ejemplo, el casco de un yate a motor, generalmente se compone de varias superficies NURBS conocidas como parches . Estos parches deben ajustarse de tal manera que los límites sean invisibles. Esto se expresa matemáticamente mediante el concepto de continuidad geométrica .
Existen herramientas de nivel superior que se benefician de la capacidad de NURBS para crear y establecer continuidad geométrica de diferentes niveles:
- La continuidad posicional (G 0 ) se mantiene siempre que coincidan las posiciones finales de dos curvas o superficies. Las curvas o superficies aún pueden encontrarse en ángulo, dando lugar a una esquina o borde afilado y provocando reflejos rotos.
- La continuidad tangencial (G¹) requiere que los vectores finales de las curvas o superficies sean paralelos y apunten en la misma dirección, descartando bordes afilados. Debido a que los reflejos que caen en un borde tangencialmente continuo son siempre continuos y, por lo tanto, parecen naturales, este nivel de continuidad a menudo puede ser suficiente.
- La continuidad de la curvatura (G²) requiere además que los vectores finales tengan la misma longitud y tasa de cambio de longitud. Las luces que caen en un borde de curvatura continua no muestran ningún cambio, lo que hace que las dos superficies aparezcan como una. Esto se puede reconocer visualmente como "perfectamente liso". Este nivel de continuidad es muy útil en la creación de modelos que requieren muchos parches bi-cúbicos que componen una superficie continua.
La continuidad geométrica se refiere principalmente a la forma de la superficie resultante; dado que las superficies NURBS son funciones, también es posible discutir las derivadas de la superficie con respecto a los parámetros. Esto se conoce como continuidad paramétrica . La continuidad paramétrica de un grado dado implica la continuidad geométrica de ese grado.
La continuidad paramétrica de primer y segundo nivel (C 0 y C¹) es, a efectos prácticos, idéntica a la continuidad posicional y tangencial (G 0 y G¹). La continuidad paramétrica de tercer nivel (C²), sin embargo, se diferencia de la continuidad de curvatura en que su parametrización también es continua. En la práctica, la continuidad C² es más fácil de lograr si se utilizan B-splines uniformes.
La definición de continuidad C n requiere que la n- ésima derivada de curvas / superficies adyacentes () son iguales en una articulación. [3] Nótese que las derivadas (parciales) de curvas y superficies son vectores que tienen una dirección y una magnitud; ambos deben ser iguales.
Las altas luces y los reflejos pueden revelar el suavizado perfecto, que de otro modo es prácticamente imposible de lograr sin superficies NURBS que tengan al menos una continuidad G². Este mismo principio se utiliza como uno de los métodos de evaluación de superficies mediante los cuales una imagen trazada por rayos o mapeada por reflexión de una superficie con franjas blancas reflejándose en ella mostrará incluso las desviaciones más pequeñas en una superficie o conjunto de superficies. Este método se deriva de la creación de prototipos de automóviles en los que la calidad de la superficie se inspecciona comprobando la calidad de los reflejos de un techo de luz de neón en la superficie del automóvil. Este método también se conoce como "análisis Zebra".
Especificaciones técnicas
Una curva NURBS se define por su orden, un conjunto de puntos de control ponderados y un vector de nudo. [4] Las curvas y superficies NURBS son generalizaciones tanto de B-splines como de curvas y superficies Bézier , siendo la principal diferencia la ponderación de los puntos de control, lo que hace que las curvas NURBS sean racionales . ( Los B-splines no racionales , también conocidos como simples , son un caso / subconjunto especial de B-splines racionales, donde cada punto de control es una coordenada regular no homogénea [sin 'w'] en lugar de una coordenada homogénea . [5] Eso es equivalente a tener un peso "1" en cada punto de control; las B-splines racionales usan la 'w' de cada punto de control como un peso . [6] ) Al usar una cuadrícula bidimensional de puntos de control, las superficies NURBS incluyen parches planos y se pueden crear secciones de esferas. Estos se parametrizan con dos variables (normalmente llamadas s y t o u y v ). Esto se puede extender a dimensiones arbitrarias para crear un mapeo NURBS..
Las curvas y superficies NURBS son útiles por varias razones:
- El conjunto de NURBS para un orden dado es invariante bajo transformaciones afines : [7] operaciones como rotaciones y traslaciones se pueden aplicar a curvas y superficies NURBS aplicándolas a sus puntos de control.
- Ofrecen una forma matemática común tanto para las formas analíticas estándar (por ejemplo, cónicas ) como para las formas libres.
- Proporcionan la flexibilidad para diseñar una gran variedad de formas.
- Reducen el consumo de memoria al almacenar formas (en comparación con los métodos más simples).
- Pueden evaluarse de forma razonablemente rápida mediante algoritmos numéricamente estables y precisos .
Aquí, NURBS se discute principalmente en una dimensión (curvas); se puede generalizar a dos (superficies) o incluso más dimensiones.
Pedido
El orden de una curva NURBS define el número de puntos de control cercanos que influyen en cualquier punto de la curva. La curva está representada matemáticamente por un polinomio de grado uno menor que el orden de la curva. Por lo tanto, las curvas de segundo orden (que están representadas por polinomios lineales) se denominan curvas lineales, las de tercer orden se denominan curvas cuadráticas y las de cuarto orden se denominan curvas cúbicas. El número de puntos de control debe ser mayor o igual al orden de la curva.
En la práctica, las curvas cúbicas son las más utilizadas. Las curvas de quinto y sexto orden a veces son útiles, especialmente para obtener derivadas continuas de orden superior, pero las curvas de orden superior prácticamente nunca se utilizan porque conducen a problemas numéricos internos y tienden a requerir tiempos de cálculo desproporcionadamente grandes.
Puntos de control
Los puntos de control determinan la forma de la curva. [8] Normalmente, cada punto de la curva se calcula tomando una suma ponderada de varios puntos de control. El peso de cada punto varía según el parámetro rector. Para una curva de grado d, el peso de cualquier punto de control es solo distinto de cero en intervalos d + 1 del espacio de parámetros. Dentro de esos intervalos, el peso cambia según una función polinomial ( funciones base ) de grado d. En los límites de los intervalos, las funciones básicas van suavemente a cero, y la suavidad está determinada por el grado del polinomio.
Como ejemplo, la función base del grado uno es una función triangular. Sube de cero a uno y luego vuelve a bajar a cero. Mientras sube, la función base del punto de control anterior cae. De esa manera, la curva se interpola entre los dos puntos y la curva resultante es un polígono, que es continuo , pero no diferenciable en los límites del intervalo, o nudos. Los polinomios de mayor grado tienen correspondientemente más derivadas continuas. Tenga en cuenta que dentro del intervalo, la naturaleza polinomial de las funciones base y la linealidad de la construcción hacen que la curva sea perfectamente suave, por lo que solo en los nudos puede surgir la discontinuidad.
En muchas aplicaciones, el hecho de que un solo punto de control solo influya en los intervalos en los que está activo es una propiedad muy deseable, conocida como soporte local . En el modelado, permite el cambio de una parte de una superficie sin modificar otras partes.
Agregar más puntos de control permite una mejor aproximación a una curva dada, aunque solo una cierta clase de curvas se puede representar exactamente con un número finito de puntos de control. Las curvas NURBS también cuentan con un peso escalar para cada punto de control. Esto permite un mayor control sobre la forma de la curva sin aumentar indebidamente el número de puntos de control. En particular, agrega secciones cónicas como círculos y elipses al conjunto de curvas que se pueden representar con exactitud. El término racional en NURBS se refiere a estos pesos.
Los puntos de control pueden tener cualquier dimensionalidad . Los puntos unidimensionales simplemente definen una función escalar del parámetro. Por lo general, se utilizan en programas de procesamiento de imágenes para ajustar el brillo y las curvas de color. Los puntos de control tridimensionales se utilizan abundantemente en el modelado 3D, donde se utilizan en el significado cotidiano de la palabra "punto", una ubicación en el espacio 3D. Los puntos multidimensionales pueden usarse para controlar conjuntos de valores controlados por el tiempo, por ejemplo, las diferentes configuraciones de posición y rotación de un brazo de robot. Las superficies NURBS son solo una aplicación de esto. Cada 'punto' de control es en realidad un vector completo de puntos de control, que define una curva. Estas curvas comparten su grado y el número de puntos de control y abarcan una dimensión del espacio de parámetros. Interpolando estos vectores de control sobre la otra dimensión del espacio de parámetros, se obtiene un conjunto continuo de curvas que definen la superficie.
Vector de nudo
El vector de nudos es una secuencia de valores de parámetros que determina dónde y cómo afectan los puntos de control a la curva NURBS. El número de nudos es siempre igual al número de puntos de control más el grado de la curva más uno (es decir, el número de puntos de control más el orden de la curva). El vector de nudos divide el espacio paramétrico en los intervalos mencionados anteriormente, generalmente denominados tramos de nudos . Cada vez que el valor del parámetro ingresa a un nuevo tramo de nudos, se activa un nuevo punto de control, mientras que se descarta un punto de control antiguo. De ello se deduce que los valores en el vector de nudos deben estar en orden no decreciente, por lo que (0, 0, 1, 2, 3, 3) es válido mientras que (0, 0, 2, 1, 3, 3) no lo es.
Los nudos consecutivos pueden tener el mismo valor. Esto define entonces un tramo de nudos de longitud cero, lo que implica que dos puntos de control se activan al mismo tiempo (y, por supuesto, dos puntos de control se desactivan). Esto tiene impacto en la continuidad de la curva resultante o sus derivadas más altas; por ejemplo, permite la creación de esquinas en una curva NURBS suave. Un número de nudos coincidentes a veces se denomina nudo con cierta multiplicidad . Los nudos con multiplicidad de dos o tres se conocen como nudos dobles o triples. La multiplicidad de un nudo se limita al grado de la curva; ya que una multiplicidad más alta dividiría la curva en partes inconexas y dejaría los puntos de control sin usar. Para NURBS de primer grado, cada nudo se empareja con un punto de control.
El vector de nudos generalmente comienza con un nudo que tiene una multiplicidad igual al orden. Esto tiene sentido, ya que activa los puntos de control que influyen en el primer tramo de nudos. De manera similar, el vector de nudos generalmente termina con un nudo de esa multiplicidad. Las curvas con tales vectores de nudos comienzan y terminan en un punto de control.
Los valores de los nudos controlan el mapeo entre el parámetro de entrada y el valor NURBS correspondiente. Por ejemplo, si una NURBS describe un camino a través del espacio a lo largo del tiempo, los nudos controlan el tiempo que pasa la función más allá de los puntos de control. Sin embargo, a los efectos de representar formas, sólo importan las proporciones de la diferencia entre los valores de los nudos; en ese caso, los vectores nudos (0, 0, 1, 2, 3, 3) y (0, 0, 2, 4, 6, 6) producen la misma curva. Las posiciones de los valores de los nudos influyen en la asignación del espacio de parámetros al espacio de la curva. La renderización de una curva NURBS generalmente se realiza avanzando con un paso fijo a través del rango de parámetros. Al cambiar las longitudes del tramo de nudos, se pueden usar más puntos de muestra en regiones donde la curvatura es alta. Otro uso es en situaciones en las que el valor del parámetro tiene algún significado físico, por ejemplo, si el parámetro es el tiempo y la curva describe el movimiento de un brazo robótico. Las longitudes del tramo de los nudos se traducen en velocidad y aceleración, que son esenciales para acertar para evitar daños al brazo del robot o su entorno. Esta flexibilidad en el mapeo es a lo que se refiere la frase no uniforme en NURBS.
Necesarios solo para cálculos internos, los nudos generalmente no son útiles para los usuarios de software de modelado. Por lo tanto, muchas aplicaciones de modelado no hacen que los nudos sean editables o incluso visibles. Por lo general, es posible establecer vectores de nudos razonables observando la variación en los puntos de control. Las versiones más recientes del software NURBS (por ejemplo, Autodesk Maya y Rhinoceros 3D ) permiten la edición interactiva de las posiciones de los nudos, pero esto es significativamente menos intuitivo que la edición de los puntos de control.
Construcción de las funciones básicas
Las funciones de base B-spline utilizadas en la construcción de curvas NURBS generalmente se denotan como , en el cual corresponde a la el punto de control, yse corresponde con el grado de la función base. [9] La dependencia del parámetro se omite con frecuencia, por lo que podemos escribir. La definición de estas funciones base es recursiva en. Las funciones de grado 0son funciones constantes por partes . Son uno en el tramo de nudo correspondiente y cero en el resto. Efectivamente, es una interpolación lineal de y . Las dos últimas funciones son distintas de cero para tramos de nudos, superpuestos para tramos de nudos. La función se calcula como
aumenta linealmente de cero a uno en el intervalo donde es distinto de cero, mientras que cae de uno a cero en el intervalo donde no es cero. Como se mencionó anteriormente,es una función triangular, distinta de cero en dos tramos de nudos que aumenta de cero a uno en el primero y desciende a cero en el segundo tramo de nudos. Las funciones de base de orden superior son distintas de cero en los correspondientes más tramos de nudos y tienen un grado correspondientemente más alto. Si es el parámetro, y es el th nudo, podemos escribir las funciones y como
y
Las funciones y son positivas cuando las funciones base de orden inferior correspondientes son distintas de cero. Por inducción sobre n se deduce que las funciones base no son negativas para todos los valores de y . Esto hace que el cálculo de las funciones base sea numéricamente estable.
Nuevamente, por inducción, se puede probar que la suma de las funciones base para un valor particular del parámetro es la unidad. Esto se conoce como la propiedad de partición de la unidad de las funciones base.
Las figuras muestran las funciones de base lineal y cuadrática para los nodos {..., 0, 1, 2, 3, 4, 4.1, 5.1, 6.1, 7.1, ...}
Un tramo de nudo es considerablemente más corto que los demás. En ese tramo de nudos, el pico en la función de base cuadrática es más distinto, alcanzando casi uno. Por el contrario, las funciones base contiguas caen a cero más rápidamente. En la interpretación geométrica, esto significa que la curva se acerca al punto de control correspondiente de cerca. En el caso de un nudo doble, la longitud del tramo del nudo se vuelve cero y el pico alcanza uno exactamente. La función base ya no es diferenciable en ese momento. La curva tendrá una esquina pronunciada si los puntos de control vecinos no son colineales.
Forma general de una curva NURBS
Usando las definiciones de las funciones base del párrafo anterior, una curva NURBS toma la siguiente forma: [9]
En esto, es el número de puntos de control y son los pesos correspondientes. El denominador es un factor de normalización que se evalúa como uno si todos los pesos son uno. Esto se puede ver en la propiedad de partición de la unidad de las funciones base. Es costumbre escribir esto como
en el que las funciones
se conocen como funciones de base racional .
Forma general de una superficie NURBS
Se obtiene una superficie NURBS como el producto tensorial de dos curvas NURBS, por lo que se utilizan dos parámetros independientes y (con índices y respectivamente): [9]
con
como funciones de base racional.
Manipular objetos NURBS
Se pueden aplicar varias transformaciones a un objeto NURBS. Por ejemplo, si alguna curva se define usando un cierto grado y N puntos de control, la misma curva se puede expresar usando el mismo grado y N + 1 puntos de control. En el proceso, varios puntos de control cambian de posición y se inserta un nudo en el vector de nudos. Estas manipulaciones se utilizan ampliamente durante el diseño interactivo. Al agregar un punto de control, la forma de la curva debe permanecer igual, formando el punto de partida para más ajustes. Algunas de estas operaciones se analizan a continuación. [9] [10]
Inserción de nudos
Como sugiere el término, la inserción de nudos inserta un nudo en el vector de nudos. Si el grado de la curva es, luego los puntos de control son reemplazados por nuevos. La forma de la curva permanece igual.
Un nudo se puede insertar varias veces, hasta la máxima multiplicidad del nudo. Esto a veces se denomina refinamiento de nudos y se puede lograr mediante un algoritmo que es más eficiente que la inserción repetida de nudos.
Eliminación de nudos
La eliminación de nudos es lo contrario de la inserción de nudos. Su propósito es eliminar los nudos y los puntos de control asociados para obtener una representación más compacta. Obviamente, esto no siempre es posible manteniendo la forma exacta de la curva. En la práctica, se utiliza una tolerancia en la precisión para determinar si se puede quitar un nudo. El proceso se utiliza para limpiar después de una sesión interactiva en la que se pueden haber agregado puntos de control manualmente, o después de importar una curva desde una representación diferente, donde un proceso de conversión sencillo conduce a puntos de control redundantes.
Grado de elevación
Una curva NURBS de un grado particular siempre se puede representar mediante una curva NURBS de grado superior. Esto se usa con frecuencia cuando se combinan curvas NURBS separadas, por ejemplo, al crear una superficie NURBS que interpola entre un conjunto de curvas NURBS o al unificar curvas adyacentes. En el proceso, las diferentes curvas deben llevarse al mismo grado, generalmente el grado máximo del conjunto de curvas. El proceso se conoce como elevación de grados .
Curvatura
La propiedad más importante de la geometría diferencial es la curvatura . Describe las propiedades locales (bordes, esquinas, etc.) y las relaciones entre la primera y la segunda derivada y, por tanto, la forma precisa de la curva. Habiendo determinado las derivadas, es fácil calcular o aproximado como la longitud de arco de la segunda derivada . El cálculo directo de la curvatura. con estas ecuaciones está la gran ventaja de las curvas parametrizadas frente a sus representaciones poligonales.
Ejemplo: un círculo
Las splines no racionales o las curvas de Bézier pueden aproximarse a un círculo, pero no pueden representarlo con exactitud. Las splines racionales pueden representar exactamente cualquier sección cónica, incluido el círculo. Esta representación no es única, pero una posibilidad aparece a continuación:
X | y | z | Peso |
---|---|---|---|
1 | 0 | 0 | 1 |
1 | 1 | 0 | |
0 | 1 | 0 | 1 |
-1 | 1 | 0 | |
-1 | 0 | 0 | 1 |
-1 | -1 | 0 | |
0 | -1 | 0 | 1 |
1 | -1 | 0 | |
1 | 0 | 0 | 1 |
El orden es tres, ya que un círculo es una curva cuadrática y el orden de la spline es uno más que el grado de sus segmentos polinomiales por partes. El vector de nudo es. El círculo se compone de cuatro cuartos de círculo, atados con nudos dobles. Aunque los nudos dobles en una curva NURBS de tercer orden normalmente darían como resultado una pérdida de continuidad en la primera derivada, los puntos de control se colocan de tal manera que la primera derivada sea continua. De hecho, la curva es infinitamente diferenciable en todas partes, como debe ser si representa exactamente un círculo.
La curva representa un círculo exactamente, pero no está exactamente parametrizada en la longitud del arco del círculo. Esto significa, por ejemplo, que el punto en no miente en (excepto el punto inicial, medio y final de cada cuarto de círculo, ya que la representación es simétrica). Esto sería imposible, ya que la coordenada x del círculo proporcionaría una expresión polinomial racional exacta para, lo cual es imposible. El círculo hace una revolución completa como parámetro. va de 0 a , pero esto se debe solo a que el vector de nudo se eligió arbitrariamente como múltiplos de .
Ver también
- Ranura
- Superficie Bézier
- algoritmo de de Boor
- Malla triangular
- Punto de nube
- Movimiento racional
- Análisis isogeométrico
Referencias
- ^ Schneider, Philip. "Curvas NURB: una guía para los no iniciados" . MACTECH . Consultado el 26 de septiembre de 2014 .
- ^ Schoenberg, IJ (19 de agosto de 1964). "Funciones de spline y el problema de la graduación" (PDF) . Actas de la Academia Nacional de Ciencias de los Estados Unidos de América . Academia Nacional de Ciencias . 52 (4): 947–950. doi : 10.1073 / pnas.52.4.947 . PMC 300377 . PMID 16591233 . Consultado el 24 de febrero de 2012 .
- ^ Foley, van Dam, Feiner & Hughes: Computer Graphics: Principles and Practice , sección 11.2, Addison-Wesley 1996 (2ª ed.).
- ^ Sistemas robóticos autoorganizados bioinspirados . pag. 9 . Consultado el 6 de enero de 2014 .
- ^ "B-splines racionales" . www.cl.cam.ac.uk .
- ^ "NURBS: Definición" . www.cs.mtu.edu .
- ^ David F. Rogers: Introducción a NURBS con perspectiva histórica, sección 7.1
- ^ Gershenfeld, Neil (1999). La naturaleza del modelado matemático . Prensa de la Universidad de Cambridge . pag. 141. ISBN 0-521-57095-6.
- ^ a b c d Piegl, Les; Tiller, Wayne (1997). The NURBS Book (2. ed.). Berlín: Springer. ISBN 3-540-61545-8.
- ^ Piegl, L. (1989). "Modificación de la forma de B-splines racionales. Parte 1: curvas". Diseño asistido por computadora . 21 (8): 509–518. doi : 10.1016 / 0010-4485 (89) 90059-6 .
enlaces externos
- Explicación clara de NURBS para no expertos
- Demostración interactiva de NURBS
- Acerca de las B-splines racionales no uniformes - NURBS
- TinySpline: biblioteca C de código abierto con enlaces para varios idiomas
- Cree y controle curvas y superficies NURBS con Inspire