Articulo de referencia

B-spline racional no uniforme

Una curva NURBS. Véase también: la creación animada de una spline NURBS . Una superficie NURBS Las curvas NURBS ( Non-Uniform Rational Base Spline ) son un modelo matemático que...

Una curva NURBS. Véase también: la creación animada de una spline NURBS .
Superficie NURBS sombreada en verde
Una superficie NURBS

Las curvas NURBS ( Non-Uniform Rational Base Spline ) son un modelo matemático que utiliza splines base (B-splines) comúnmente empleado en gráficos por computadora para representar curvas y superficies . Ofrecen gran flexibilidad y precisión para el manejo de formas analíticas (definidas por fórmulas matemáticas comunes ) y modeladas . Se trata de un tipo de modelado de curvas , a diferencia del modelado poligonal o el esculpido digital . Las curvas NURBS se utilizan habitualmente 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 diversos paquetes de software de gráficos 3D , renderizado [ 1 ] y animación .

Pueden ser gestionadas eficientemente por programas informáticos y, a la vez, permiten una fácil interacción humana. Las superficies NURBS son funciones de dos parámetros que se mapean a una superficie en el espacio tridimensional . La forma de la superficie está determinada por puntos de control . En su forma compacta, las superficies NURBS pueden representar figuras geométricas simples . Para formas orgánicas complejas, las T-splines y las superficies de subdivisión son más adecuadas, ya que 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. Los puntos de control siempre están conectados directamente a la curva o superficie, o bien actúan como si estuvieran conectados por una banda elástica. Según el tipo de interfaz de usuario, la edición de curvas y superficies NURBS puede realizarse mediante sus puntos de control (de forma similar a las curvas de Bézier ) o mediante herramientas de nivel superior como el modelado de splines y la edición jerárquica .

Historia

Una curva plana , el equivalente físico de la curva matemática . En este caso, la curva se mantiene en su lugar mediante pasadores en lugar de soportes.

Antes de la llegada de las computadoras, los diseños se dibujaban a mano sobre papel con diversas herramientas de dibujo . Se usaban reglas para las líneas rectas, compases para los círculos y transportadores para los ángulos. Sin embargo, muchas formas, como la curva libre de la proa de un barco, no podían dibujarse con estas herramientas.

Aunque tales curvas podían dibujarse a mano alzada en la mesa de dibujo, los constructores navales a menudo necesitaban una versión a tamaño real que no podía hacerse manualmente. Estos dibujos de gran tamaño se realizaban con la ayuda de tiras flexibles de madera, llamadas espigas. Las espigas se mantenían en su lugar en varios puntos predeterminados mediante "patos" de plomo, llamados así por la protuberancia en forma de pico contra la que descansaban las espigas. Entre los patos, la elasticidad del material de la espiga hacía que la tira adoptara la forma que minimizaba la energía de flexión, creando así la forma más suave posible que se ajustara a las restricciones. La forma podía ajustarse moviendo los patos. [ 2 ] [ 3 ]

En 1964, los matemáticos comenzaron a estudiar la forma de la curva spline y derivaron la fórmula polinómica por partes conocida como curva spline o función spline. I. J. Schoenberg le dio nombre a la función spline por su parecido con la curva spline mecánica utilizada por los dibujantes. [ 4 ]

Con la incorporación de los ordenadores al proceso de diseño, se investigaron las propiedades físicas de dichas curvas para poder modelarlas con precisión matemática y reproducirlas cuando fuera necesario. El trabajo pionero fue realizado en Francia por el ingeniero de Renault , Pierre Bézier , y el físico y matemático de Citroën , Paul de Casteljau . Trabajaron prácticamente en paralelo, pero como 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.

El trabajo de Bézier llegó a un grupo de profesores y estudiantes de posgrado de la Universidad de Syracuse, entre ellos Steven Anson Coons , William Gordon, Robin Forrest, Rich Riesenfeld y Ken Versprille. La tesis doctoral de Riesenfeld introdujo las B-splines ; la tesis de Versprille las generalizó para que fueran no uniformes y racionales. [ 5 ] Riesenfeld se trasladó a la Universidad de Utah , donde uno de sus estudiantes pasó a trabajar en Boeing , que necesitaba una forma generalizada de representar con exactitud varias otras fórmulas en uso. [ 6 ] Boeing adoptó el concepto de Versprille, lo abrevió como "NURBS", lo integró en su programa CAD TIGER y lo propuso como estándar de la industria. [ 7 ]

La representación interactiva en tiempo real de curvas y superficies NURBS se comercializó por primera vez en las estaciones de trabajo de Silicon Graphics en 1989. En 1993, CAS Berlin, una pequeña empresa emergente que colaboraba con la Universidad Técnica de Berlín , desarrolló el primer modelador NURBS interactivo para PC, llamado NöRBS.

Continuidad

Una superficie en construcción, como el casco de un yate, suele estar compuesta por varias superficies NURBS, conocidas como parches NURBS (o simplemente parches ). Estos parches deben encajar de forma que sus 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 las NURBS para crear y establecer una continuidad geométrica de diferentes niveles:

Continuidad posicional
(G 0 ) se cumple siempre que las posiciones finales de dos curvas o superficies coinciden. Las curvas o superficies aún pueden encontrarse en ángulo, dando lugar a una esquina o borde afilado y provocando reflejos discontinuos.
Continuidad tangencial
(G¹) requiere que los vectores extremos de las curvas o superficies sean paralelos y apunten en la misma dirección, lo que descarta los bordes afilados. Dado que los reflejos que inciden sobre un borde tangencialmente continuo siempre son continuos y, por lo tanto, tienen un aspecto natural, este nivel de continuidad suele ser suficiente.
Continuidad de la curvatura
(G²) exige además que los vectores extremos tengan la misma longitud y tasa de cambio de longitud. Los puntos de luz que caen sobre un borde de curvatura continua no muestran ningún cambio, lo que hace que las dos superficies parezcan una sola. Esto se puede reconocer visualmente como una superficie "perfectamente lisa". Este nivel de continuidad es muy útil en la creación de modelos que requieren muchos parches bicú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 analizar 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 mismo grado.

La continuidad paramétrica de primer y segundo nivel (C₀ y C¹) es, a efectos prácticos, idéntica a la continuidad posicional y tangencial (G₀ y G¹). Sin embargo, la continuidad paramétrica de tercer nivel (C²) se diferencia de la continuidad de curvatura en que su parametrización también es continua. En la práctica, la continuidad C² se logra más fácilmente utilizando B-splines uniformes.

La definición de continuidad C n requiere que la n- ésima derivada de curvas/superficies adyacentes (dnortedo()/dnorte{\displaystyle d^{n}C(u)/du^{n}}) son iguales en una articulación. [ 8 ] Nótese que las derivadas (parciales) de curvas y superficies son vectores que tienen una dirección y una magnitud; ambas deben ser iguales.

Los reflejos y las luces brillantes pueden revelar un alisado perfecto, algo prácticamente imposible de lograr sin superficies NURBS con al menos una continuidad G². Este mismo principio se utiliza en uno de los métodos de evaluación de superficies, donde una imagen de una superficie con franjas blancas reflejadas, obtenida mediante trazado de rayos o mapeo de reflexión, muestra incluso las más mínimas desviaciones en una superficie o conjunto de superficies. Este método se deriva del prototipado de automóviles, donde la calidad de la superficie se inspecciona comprobando la calidad de los reflejos de un techo de neón sobre la superficie del vehículo. Este método también se conoce como "análisis de cebra".

Especificaciones técnicas

Una curva NURBS se define por su orden, un conjunto de puntos de control ponderados y un vector de nodos. [ 9 ] Las curvas y superficies NURBS son generalizaciones tanto de las B-splines como de las curvas y superficies de Bézier, siendo la principal diferencia la ponderación de los puntos de control, lo que hace que las curvas NURBS sean racionales .

( Las B-splines no racionales , también conocidas como simples , son un caso especial/subconjunto de las B-splines racionales, donde cada punto de control es una coordenada regular no homogénea [sin 'w'] en lugar de una coordenada homogénea . [ 10 ] Esto equivale a tener un peso "1" en cada punto de control; las B-splines racionales utilizan la 'w' de cada punto de control como peso . [ 11 ] )

Mediante el uso de una cuadrícula bidimensional de puntos de control, se pueden crear superficies NURBS, incluyendo parches planos y secciones de esferas. Estas se parametrizan con dos variables (normalmente llamadas s y t o u y v ). Esto se puede extender a dimensiones arbitrarias para crear mapeos NURBS.RnorteRnorte{\displaystyle \mathbb {R} ^{n}\to \mathbb {R} ^{n}}.

Las curvas y superficies NURBS son útiles por varias razones:

  • El conjunto de NURBS para un orden dado es invariante bajo transformaciones afines : [ 12 ] operaciones como rotaciones y traslaciones se pueden aplicar a curvas y superficies NURBS aplicándolas a sus puntos de control.
  • Ofrecen una fórmula matemática común tanto para las formas analíticas estándar (por ejemplo, las cónicas ) como para las formas de forma libre.
  • Ofrecen la flexibilidad necesaria para diseñar una gran variedad de formas.
  • Reducen el consumo de memoria al almacenar formas (en comparación con métodos más sencillos).
  • Pueden evaluarse con bastante rapidez mediante algoritmos numéricamente estables y precisos .

Aquí, las NURBS se analizan principalmente en una dimensión (curvas); sin embargo, pueden generalizarse a dos (superficies) o incluso a más dimensiones.

Orden

El orden de una curva NURBS define la cantidad de puntos de control cercanos que influyen en cualquier punto de la curva. La curva se representa matemáticamente mediante un polinomio de grado uno menor que su orden. Por lo tanto, las curvas de segundo orden (representadas por polinomios lineales) se denominan curvas lineales, las de tercer orden, curvas cuadráticas, y las de cuarto orden, curvas cúbicas. La cantidad de puntos de control debe ser mayor o igual que el 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 resultan útiles, especialmente para obtener derivadas continuas de orden superior, pero las curvas de órdenes superiores prácticamente nunca se utilizan porque generan problemas numéricos internos y tienden a requerir tiempos de cálculo desproporcionadamente largos.

Puntos de control

Las superficies NURBS tridimensionales pueden tener formas orgánicas complejas. Los puntos de control influyen en la dirección que toma la superficie. Un cuadrado independiente debajo de la malla de control delimita los límites X e Y de la superficie.

Los puntos de control determinan la forma de la curva. [ 13 ] Normalmente, cada punto de la curva se calcula mediante la suma ponderada de varios puntos de control. El peso de cada punto varía según el parámetro que la rige. Para una curva de grado d, el peso de cualquier punto de control solo es distinto de cero en d+1 intervalos del espacio de parámetros . Dentro de esos intervalos, el peso cambia según una función polinómica ( funciones base ) de grado d. En los límites de los intervalos, las funciones base tienden suavemente a cero, y la suavidad viene determinada por el grado del polinomio.

Por ejemplo, la función base de grado uno es una función triangular. Esta función asciende de cero a uno y luego desciende de nuevo a cero. Mientras asciende, la función base del punto de control anterior desciende. De esta forma, la curva interpola entre los dos puntos, y la curva resultante es un polígono continuo , pero no diferenciable en los límites del intervalo, o nodos. Los polinomios de mayor grado tienen derivadas correspondientemente más continuas. Cabe destacar que, dentro del intervalo, la naturaleza polinómica de las funciones base y la linealidad de la construcción hacen que la curva sea perfectamente suave, por lo que la discontinuidad solo puede surgir en los nodos.

En muchas aplicaciones, el hecho de que un único punto de control solo influya en los intervalos donde está activo es una propiedad muy deseable, conocida como soporte local . En modelado, permite modificar una parte de una superficie sin alterar otras partes.

Agregar más puntos de control permite una mejor aproximación a una curva dada, aunque solo una clase específica de curvas puede representarse con exactitud 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 excesivamente el número de puntos de control. En particular, añade secciones cónicas, como círculos y elipses, al conjunto de curvas que pueden representarse 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. Estos se utilizan típicamente en programas de procesamiento de imágenes para ajustar las curvas de brillo y color. Los puntos de control tridimensionales se utilizan abundantemente en el modelado 3D, donde se emplean en el sentido cotidiano de la palabra "punto", una ubicación en el espacio 3D. Los puntos multidimensionales pueden utilizarse para controlar conjuntos de valores dependientes del tiempo, por ejemplo, las diferentes configuraciones de posición y rotación de un brazo robótico. Las superficies NURBS son simplemente 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. Al interpolar estos vectores de control sobre la otra dimensión del espacio de parámetros, se obtiene un conjunto continuo de curvas que define la superficie.

Vector de nudo

El vector de nodos es una secuencia de valores de parámetros que determina dónde y cómo los puntos de control afectan la curva NURBS. El número de nodos siempre es 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 nodos divide el espacio paramétrico en los intervalos mencionados anteriormente, generalmente denominados segmentos de nodos . Cada vez que el valor del parámetro entra en un nuevo segmento de nodo, se activa un nuevo punto de control, mientras que se descarta un punto de control anterior. Por lo tanto, los valores en el vector de nodos deben estar en orden no decreciente, de modo 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 un intervalo de nudo 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 afecta la continuidad de la curva resultante o sus derivadas de orden superior; por ejemplo, permite la creación de esquinas en una curva NURBS que de otro modo sería suave. Un conjunto de nudos coincidentes se denomina a veces nudo con cierta multiplicidad . Los nudos con multiplicidad dos o tres se conocen como nudos dobles o triples. La multiplicidad de un nudo está limitada por el grado de la curva; ya que una multiplicidad mayor dividiría la curva en partes disjuntas y dejaría puntos de control sin usar. Para las NURBS de primer grado, cada nudo se empareja con un punto de control.

El vector de nudos suele comenzar con un nudo cuya multiplicidad es igual al orden. Esto tiene sentido, ya que activa los puntos de control que influyen en el primer tramo del nudo. De forma similar, el vector de nudos suele terminar con un nudo de esa multiplicidad. Las curvas con dichos vectores de nudos comienzan y terminan en un punto de control.

Los valores de los nodos controlan la correspondencia entre el parámetro de entrada y el valor NURBS correspondiente. Por ejemplo, si una NURBS describe una trayectoria en el espacio a lo largo del tiempo, los nodos controlan el tiempo que tarda la función en pasar por los puntos de control. Sin embargo, para representar formas, solo importan las proporciones de la diferencia entre los valores de los nodos; en ese caso, los vectores de nodos (0, 0, 1, 2, 3, 3) y (0, 0, 2, 4, 6, 6) producen la misma curva. La posición de los valores de los nodos influye en la correspondencia entre el espacio de parámetros y el espacio de curvas. La representación de una curva NURBS se suele realizar avanzando con un paso fijo a través del rango de parámetros. Al cambiar la longitud de los nodos, se pueden usar más puntos de muestreo en regiones con alta curvatura. Otro uso se da en situaciones donde 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 de los nodos se traducen en velocidad y aceleración, parámetros esenciales para evitar daños al brazo robótico o a su entorno. Esta flexibilidad en el mapeo es a lo que se refiere el término " no uniforme" en NURBS.

Los nudos, necesarios únicamente para cálculos internos, no suelen ser útiles para los usuarios de software de modelado. Por ello, muchas aplicaciones de modelado no permiten editarlos ni visualizarlos. Generalmente, es posible determinar vectores de nudos razonables observando la variación en los puntos de control. Las versiones más recientes de software NURBS (por ejemplo, Autodesk Maya y Rhinoceros 3D ) permiten la edición interactiva de las posiciones de los nudos, pero esto resulta mucho menos intuitivo que la edición de los puntos de control.

Construcción de las funciones básicas

Las funciones base B-spline utilizadas en la construcción de curvas NURBS se suelen denotar comonortei,norte(){\displaystyle N_{i,n}(u)}, en el cuali{\displaystyle i}corresponde a lai{\displaystyle i}-ésimo punto de control, ynorte{\displaystyle n}corresponde con el grado de la función base. [ 14 ] La dependencia del parámetro se omite con frecuencia, por lo que podemos escribirnortei,norte{\displaystyle N_{i,n}}La definición de estas funciones base es recursiva ennorte{\displaystyle n}. Las funciones de grado 0nortei,0{\displaystyle N_{i,0}}son funciones constantes por partes . Son uno en el intervalo del nudo correspondiente y cero en cualquier otro lugar. Efectivamente,nortei,norte{\displaystyle N_{i,n}}es una interpolación lineal denortei,norte1{\displaystyle N_{i,n-1}}ynortei+1,norte1{\displaystyle N_{i+1,n-1}}Las dos últimas funciones no son cero paranorte{\displaystyle n}tramos de nudos, superpuestos paranorte1{\displaystyle n-1}tramos de nudos. La funciónnortei,norte{\displaystyle N_{i,n}}se calcula como

De arriba abajo: Funciones base linealesnorte1,1{\displaystyle N_{1,1}}(azul) ynorte2,1{\displaystyle N_{2,1}}(verde) (arriba), sus funciones de pesoF{\displaystyle f}ygramo{\displaystyle g}(centro) y la función base cuadrática resultante (abajo). Los nodos son 0, 1, 2 y 2,5.

nortei,norte=Fi,nortenortei,norte1+gramoi+1,nortenortei+1,norte1{\displaystyle N_{i,n}=f_{i,n}N_{i,n-1}+g_{i+1,n}N_{i+1,n-1}}Fi{\displaystyle f_{i}}aumenta linealmente de cero a uno en el intervalo dondenortei,norte1{\displaystyle N_{i,n-1}}es distinto de cero, mientras quegramoi+1{\displaystyle g_{i+1}}cae de uno a cero en el intervalo dondenortei+1,norte1{\displaystyle N_{i+1,n-1}}es distinto de cero. Como se mencionó anteriormente,nortei,1{\displaystyle N_{i,1}}es una función triangular, distinta de cero en dos intervalos de nudos, que aumenta de cero a uno en el primero y disminuye a cero en el segundo intervalo de nudos. Las funciones base de orden superior son distintas de cero en intervalos de nudos mayores correspondientes y tienen un grado correspondientemente mayor. Si{\displaystyle u}es el parámetro, yki{\displaystyle k_{i}}es eli{\displaystyle i}el nudo, podemos escribir las funcionesF{\displaystyle f}ygramo{\displaystyle g}como Fi,norte()=kiki+norteki{\displaystyle f_{i,n}(u)={\frac {u-k_{i}}{k_{i+n}-k_{i}}}} y gramoi,norte()=1Fi,norte()=ki+norteki+norteki{\displaystyle g_{i,n}(u)=1-f_{i,n}(u)={\frac {k_{i+n}-u}{k_{i+n}-k_{i}}}} Las funcionesF{\displaystyle f}ygramo{\displaystyle g}son positivas cuando las funciones base de orden inferior correspondientes no son cero. Por inducción sobre n se deduce que las funciones base no son negativas para todos los valores denorte{\displaystyle n}y{\displaystyle u}Esto hace que el cálculo de las funciones base sea numéricamente estable.

Nuevamente, por inducción, se puede demostrar que la suma de las funciones base para un valor particular del parámetro es igual a la unidad. Esto se conoce como la propiedad de partición de la unidad de las funciones base.

Funciones base lineales
Funciones base cuadráticas

Las figuras muestran las funciones base lineales y cuadráticas para los nudos {..., 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, el pico de la función base cuadrática es más pronunciado, alcanzando casi la unidad. Por el contrario, las funciones base adyacentes tienden a cero más rápidamente. En la interpretación geométrica, esto significa que la curva se aproxima al punto de control correspondiente. En el caso de un nudo doble, la longitud del tramo de nudo se reduce a cero y el pico alcanza exactamente la unidad. La función base deja de ser diferenciable en ese punto. La curva presentará una esquina pronunciada si los puntos de control vecinos no son colineales.

Forma general de una curva NURBS

Utilizando las definiciones de las funciones basenortei,norte{\displaystyle N_{i,n}}Según el párrafo anterior, una curva NURBS tiene la siguiente forma: [ 14 ]do()=i=1knortei,norte()wij=1knortej,norte()wjPAGi=i=1knortei,norte()wiPAGii=1knortei,norte()wi{\displaystyle C(u)=\sum _{i=1}^{k}{\frac {N_{i,n}(u)w_{i}}{\sum _{j=1}^{k}N_{j,n}(u)w_{j}}}\mathbf {P} _{i}={\frac {\sum _{i=1}^{k}{N_{i,n}(u)w_{i}\mathbf {P} _{i}}}{\sum _{i=1}^{k}{N_{i,n}(u)w_{i}}}}}

En esto,k{\displaystyle k}es el número de puntos de controlPAGi{\displaystyle \mathbf {P} _{i}}ywi{\displaystyle w_{i}}son los pesos correspondientes. El denominador es un factor de normalización que se evalúa a uno si todos los pesos son uno. Esto se puede ver a partir de la propiedad de partición de la unidad de las funciones base. Es habitual escribir esto como do()=i=1kRi,norte()PAGi{\displaystyle C(u)=\sum _{i=1}^{k}R_{i,n}(u)\mathbf {P} _{i}} en el que las funciones Ri,norte()=nortei,norte()wij=1knortej,norte()wj{\displaystyle R_{i,n}(u)={N_{i,n}(u)w_{i} \over \sum _{j=1}^{k}N_{j,n}(u)w_{j}}} se conocen como funciones base racionales .

Forma general de una superficie NURBS

Una superficie NURBS se obtiene como el producto tensorial de dos curvas NURBS, utilizando así dos parámetros independientes.{\displaystyle u}yv{\displaystyle v}(con índices)i{\displaystyle i}yj{\displaystyle j}respectivamente): [ 14 ]S(,v)=i=1kj=1lRi,j(,v)PAGi,j{\displaystyle S(u,v)=\sum _{i=1}^{k}\sum _{j=1}^{l}R_{i,j}(u,v)\mathbf {P} _{i,j}} con Ri,j(,v)=nortei,norte()nortej,metro(v)wi,jpag=1kq=1lnortepag,norte()norteq,metro(v)wpag,q{\displaystyle R_{i,j}(u,v)={\frac {N_{i,n}(u)N_{j,m}(v)w_{i,j}}{\sum _{p=1}^{k}\sum _{q=1}^{l}N_{p,n}(u)N_{q,m}(v)w_{p,q}}}} como funciones base racionales.

Manipulación de objetos NURBS

Diseño de yates a motor mediante superficies NURBS

Se pueden aplicar diversas transformaciones a un objeto NURBS. Por ejemplo, si una curva se define con un grado determinado y N puntos de control, la misma curva se puede expresar con el mismo grado y N+1 puntos de control. En este proceso, varios puntos de control cambian de posición y se inserta un nodo en el vector de nodos. Estas manipulaciones se utilizan ampliamente en el diseño interactivo. Al añadir un punto de control, la forma de la curva debe permanecer inalterada, constituyendo el punto de partida para ajustes posteriores. A continuación se describen algunas de estas operaciones. [ 14 ] [ 15 ]

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 esnorte{\displaystyle n}, entoncesnorte1{\displaystyle n-1}Los puntos de control se reemplazan pornorte{\displaystyle n}nuevas. La forma de la curva permanece igual.

Un nudo puede insertarse varias veces, hasta alcanzar la multiplicidad máxima permitida. Esto se conoce a veces como refinamiento de nudos y puede lograrse mediante un algoritmo más eficiente que la inserción repetida de nudos.

Eliminación de nudos

La eliminación de nudos es el proceso inverso a la inserción de nudos. Su objetivo 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 eliminar un nudo. Este proceso se utiliza para limpiar el modelo después de una sesión interactiva en la que se hayan añadido puntos de control manualmente, o después de importar una curva de otra representación, donde un proceso de conversión directo genera puntos de control redundantes.

Grado de elevación

Una curva NURBS de un grado determinado siempre puede representarse mediante una curva NURBS de grado superior. Esto se utiliza frecuentemente al combinar curvas NURBS independientes, por ejemplo, al crear una superficie NURBS mediante interpolación entre un conjunto de curvas NURBS o al unificar curvas adyacentes. En este proceso, las diferentes curvas deben alcanzar el mismo grado, generalmente el grado máximo del conjunto de curvas. Este proceso se conoce como elevación de grado .

Curvatura

La propiedad más importante en geometría diferencial es la curvatura.κ{\displaystyle \kappa }Describe las propiedades locales (bordes, esquinas, etc.) y las relaciones entre la primera y la segunda derivada, y por lo tanto, la forma precisa de la curva. Una vez determinadas las derivadas, es fácil calcularκ=|r(t)×r(t)||r(t)|3{\displaystyle \kappa ={\frac {|r'(t)\times r''(t)|}{|r'(t)|^{3}}}}o aproximado como la longitud de arco de la segunda derivadaκ=|r(so)|{\displaystyle \kappa =|r''(s_{o})|}. El cálculo directo de la curvaturaκ{\displaystyle \kappa }Con estas ecuaciones reside la gran ventaja de las curvas parametrizadas frente a sus representaciones poligonales.

Ejemplo: un círculo

Las NURBS tienen la capacidad de describir círculos con precisión. Aquí, el triángulo negro es el polígono de control de una curva NURBS (mostrado en w=1). La línea de puntos azul muestra el polígono de control correspondiente de una curva B-spline en coordenadas homogéneas 3D , formada al multiplicar las NURBS por los puntos de control por los pesos correspondientes. Las parábolas azules son la curva B-spline correspondiente en 3D, que consta de tres parábolas. Al elegir los puntos de control y los pesos de las NURBS, las parábolas son paralelas a la cara opuesta del cono gris (con su vértice en el origen 3D), por lo que al dividir por w para proyectar las parábolas sobre el plano w =1 se obtienen arcos circulares (círculo rojo; ver sección cónica ).

Las curvas spline o de Bézier no racionales pueden aproximar un círculo, pero no pueden representarlo con exactitud. Las curvas spline racionales pueden representar cualquier sección cónica —incluido el círculo— con exactitud . Esta representación no es única, pero a continuación se muestra una posibilidad:

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 polinómicos por partes. El vector de nodos es{0,0,0,π/2,π/2,π,π,3π/2,3π/2,2π,2π,2π}{\displaystyle \{0,0,0,\pi /2,\pi /2,\pi ,\pi ,3\pi /2,3\pi /2,2\pi ,2\pi ,2\pi \}\,}El círculo está compuesto por cuatro cuartos de círculo unidos con nudos dobles. Si bien los nudos dobles en una curva NURBS de tercer orden normalmente provocarían la pérdida de continuidad en la primera derivada, los puntos de control están posicionados de tal manera que la primera derivada es 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á parametrizada exactamente en la longitud del arco del círculo. Esto significa, por ejemplo, que el punto ent{\displaystyle t}no miente en(pecado(t),porque(t)){\displaystyle (\sin(t),\cos(t))}(excepto por 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 polinómica racional exacta paraporque(t){\displaystyle \cos(t)}, lo cual es imposible. El círculo sí realiza una revolución completa como su parámetrot{\displaystyle t}va de 0 a2π{\displaystyle 2\pi }, pero esto se debe únicamente a que el vector del nudo fue elegido arbitrariamente como múltiplos deπ/2{\displaystyle \pi /2}.

Véase también

Referencias

  1. "Por qué KeyShot se convirtió en el software de renderizado de productos más popular" . 3 de octubre de 2022.
  2. Schneider, Philip. "Curvas NURBS: Una guía para principiantes" . MACTECH . Consultado el 26 de septiembre de 2014 .
  3. Schneider, Philip (marzo de 1996). "Curvas NURBS: una guía para principiantes" (PDF) . develop (25): 48–74 .
  4. Schoenberg, IJ (19 de agosto de 1964). "Funciones spline y el problema de la graduación" . Actas de la Academia Nacional de Ciencias de los Estados Unidos de América . 52 ( 4). Academia Nacional de Ciencias : 947–950 . Bibcode : 1964PNAS...52..947S . doi : 10.1073/pnas.52.4.947 . PMC 300377. PMID 16591233 .  
  5. Versprille, Kenneth (1975-01-01). "Aplicaciones de diseño asistido por computadora de la forma de aproximación B-spline racional" . Ingeniería eléctrica y ciencias de la computación - Disertaciones .
  6. "¿Cómo surgieron las NURBS? - por el Dr. Ken Versprille | Solid Edge" . 16 de septiembre de 2013. Consultado el 6 de noviembre de 2025 .
  7. Piegl, L. (31 de enero de 1991). "Sobre NURBS: una revisión" . IEEE Computer Graphics and Applications . 11 (1): 55– 71. doi : 10.1109/38.67702 . ISSN 1558-1756 . 
  8. Foley, van Dam, Feiner y Hughes: Gráficos por computadora: Principios y práctica , sección 11.2, Addison-Wesley 1996 (2.ª ed.).
  9. Sistemas robóticos autoorganizados bioinspirados . pág. 9. Consultado el 6 de enero de 2014 . 
  10. " B-splines racionales" . www.cl.cam.ac.uk.
  11. "NURBS: Definición" . www.cs.mtu.edu .
  12. David F. Rogers: Introducción a NURBS con perspectiva histórica, sección 7.1
  13. Gershenfeld, Neil (1999). La naturaleza del modelado matemático . Cambridge University Press . pág. 141. ISBN  0-521-57095-6.
  14. 1 2 3 4 Piegl, Les; Tiller, Wayne (1997). El libro de NURBS (2.ª ed.). Berlín: Springer. ISBN  3-540-61545-8.
  15. Piegl, L. (1989). "Modificación de la forma de B-splines racionales. Parte 1: curvas". Computer-Aided Design . 21 (8): 509– 518. doi : 10.1016/0010-4485(89)90059-6 .
  • Explicación clara de NURBS para personas no expertas.
  • Acerca de las curvas B-spline racionales no uniformes (NURBS)
  • TinySpline: Biblioteca C de código abierto con enlaces para varios lenguajes.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Non-uniform_rational_B-spline&oldid=1361201611 "