Estoy tratando de encontrar una forma de calcular la intersección entre una b-spline y una línea recta. Hasta ahora Google no ha sido de mucha ayuda.El punto de intersección entre una spline y una línea
Respuesta
Su mejor enfoque podría ser dividir su spline en segmentos de línea individuales y probar cada segmento de línea para la intersección con la línea. El estriado puede intersectar la línea en más de un punto, por lo que también tendrá que decidir cuál de ellos está interesado en
Una aproximación matemática pura:.
- transformar el estriado y la línea de modo que la línea se encuentra en el eje X.
- Calcule los puntos en la spline donde Y = 0 (depende del orden de la spline).
- Transfiera estos puntos a su sistema cordinate original.
Si esta es la forma en que vas, puedo encontrar las fórmulas necesarias.
Me gusta el enfoque, pero ¿cómo se resuelve cuando Y = 0 de la spline? ¿Hay alguna otra manera que no sea evaluar los segmentos spline e intentar aproximarlos? – Herms
Según el orden de la spline, existen soluciones existentes para las ecuaciones spline (al menos hasta las splines cúbicas). Las fórmulas tienden a ser realmente incómodas y no se garantiza que sean bajas en errores numéricos. Como dije: un enfoque matemático puro. –
El algoritmo más eficiente que he escuchado se llama recorte de Bezier.
Aquí hay un book chapter on curve and spline intersection (pdf).
He tenido éxito implementando una solución desde esta fuente, específicamente mirando la sección 7.3, ya que el hallazgo de raíz polinomial para las funciones bezier y B Spline es fácil. –
- 1. Intersección entre una línea y una esfera
- 2. ¿Cómo encontrar el punto de intersección entre una línea y un rectángulo?
- 3. Intersección del segmento de línea y línea
- 4. puntos de intersección entre la línea y el rectángulo
- 5. Vector perpendicular mínimo entre un punto y una línea
- 6. Creando una curva spline entre 2 puntos en Three.js
- 7. punto de un polígono y línea
- 8. Python - intersección entre una lista y claves de un diccionario
- 9. Encuentre la intersección entre la línea y la cuadrícula de una manera rápida
- 10. Biblioteca Spline, B-Spline y NURBS C++
- 11. El algoritmo para encontrar el punto de intersección de dos segmentos de línea 3D
- 12. Dos segmentos de línea paralela intersección
- 13. ¿Cómo se calculan los puntos de intersección de una línea y una forma arbitraria?
- 14. Coordenadas de intersección entre Ray y Plano
- 15. Encontrar el punto de intersección más cercano en el plan
- 16. diferencia entre el valor inicial y el punto de referencia en el rendimiento de una aplicación
- 17. ¿Cómo puedo encontrar el punto de intersección de tres planos?
- 18. Encontrar un punto en una línea
- 19. dado un punto de inicio y final, y una distancia, calcular un punto a lo largo de una línea
- 20. Diferencia entre una función en línea y una vista
- 21. Dibujar línea perpendicular a una línea en OpenCV
- 22. Ray y cara 3D Intersección
- 23. ¿Cómo calcular el punto más cercano de una línea y curva? .. o curva y curva?
- 24. ¿Una función de JavaScript que devuelve los puntos x, y de intersección entre dos círculos?
- 25. CGAL: ¿intersección entre un segmento y un polígono?
- 26. Encontrar la longitud de una B-spline cúbica
- 27. Clase de punto y línea en C++?
- 28. spline de interpolación superficie
- 29. Ransac para ajuste de spline
- 30. Diferencia entre una función en línea y una función en línea estática
Acepto, este es el método generalmente recomendado. Por lo general, es más eficiente si lo hace de forma iterativa, refinando los segmentos de línea donde encuentra una intersección hasta que obtenga la resolución deseada. – Kena