Tengo un conjunto de casos especiales de splines cúbicos, cuyos 2d puntos de control siempre darán como resultado una curva que nunca se cruzará en el eje x . Es decir, las curvas parecen que podrían ser una función polinómica simple tal que y = f (x). Quiero crear de manera eficiente una matriz de y coordenadas a lo largo de la spline que corresponden a las coordenadas equies espaciadas que se extienden a lo largo del segmento spline.Transformar la función 2d spline f (t) en f (x)
Quiero encontrar de manera eficiente las coordenadas Y a lo largo de la acanaladura que, por ejemplo, x = 0,0, x = 0,1, x = 0,2, etc., o acercado otra manera, transformar eficazmente el f x, y ( t) función de estilo en una función f ( x).
Actualmente estoy usando una matriz constante 4x4 y cuatro puntos de control 2d para describir la spline, utilizando constantes de matriz, ya sea para Hermite o Catmull-Rom splines, y conectarlos a una función cúbica de t que va de 0 a 1.
Dada la matriz y los puntos de control, ¿cuál es la mejor manera de obtener estos valores y sobre el eje x?
EDITAR: Debo añadir que una aproximación lo suficientemente buena como para dibujar es suficiente.
El método más simple que he encontrado hasta ahora es simplemente tomando una muestra de puntos de la curva a intervalos regulares de t, y luego interpolando entre los que están a lo largo del eje x para recoger los valores de f (x). Esto se ve bien la mayor parte del tiempo, pero ocasionalmente pierde detalles, porque es difícil saber dónde se encuentran las esquinas agudas; aumentar la frecuencia de muestreo ayuda, pero no es exactamente eficiente ni satisfactorio. Estoy seguro de que hay una manera inteligente que es computacionalmente eficiente y no pierde los detalles. – vercellop
@vervellop, con la pregunta editada, su enfoque actual podría ser la mejor respuesta, por lo que le sugiero que lo publique como respuesta, para que eventualmente pueda aceptarlo si no aparece nada mejor. Y los usuarios pueden votarlo si lo consideran una solución buena/apropiada para este problema. – MvG
Puede haber una contradicción en su pregunta: la pregunta original pide coordenadas espaciadas uniformemente * x *, mientras que la edición requiere una solución adecuada para el dibujo. En presencia de cúspides pronunciadas, un muestreo uniformemente espaciado probablemente no podrá capturar estas cúspides. Por lo tanto, sugiero que deje la pregunta tal como estaba originalmente, ya que a eso se refieren las respuestas. Es posible que desee hacer una nueva pregunta sobre el problema del dibujo, preferiblemente dando detalles sobre qué es exactamente lo que intenta lograr, es decir, por qué simplemente dibujar la spline 2D no es suficiente. – MvG