Necesito encontrar el centro de una curva de Bezier para rotarla. Tengo una lista de todos los puntos (puntos de control, principio y final, todos los puntos en la curva misma). ¿Cómo haría para encontrar su centro?
algorithm
bezier-curve
usuario4656
fuente
fuente
t=0.5
punto. y dos es el punto medio geométrico con respecto a la distancia cartesiana de viaje a lo largo de la línea.Respuestas:
Las curvas de Bézier son entidades matemáticas y no tienen un centro claramente definido. De hecho, se pueden definir muchas cosas diferentes como el centro de la curva de Bézier. He tratado de representar algunos de los posibles centros en la imagen 1. Más que esto existe.
Imagen 1 : Algunos de los posibles centros de una curva Bézier de un solo tramo
En la práctica, casi todas las aplicaciones de gráficos diseñadas para dibujar utilizan el centro del cuadro delimitador local (BB) como su centro. El software de animación generalmente tiene un concepto adicional de pivote, por lo que utilizan el enfoque de preguntar al usuario, si no se realiza ninguna entrada, a menudo vuelven al centro BB o simplemente al centro de coordenadas local. Esto probablemente se deba a que el BB debe calcularse de todos modos y obtener su centro es bastante fácil de hacer (vea A Primer on Bézier Curves ).
Las métricas del centro de gravedad también son algo naturales, especialmente en un contexto de animación, aunque son más difíciles de calcular. Lo más fácil es discretizar los datos y hacer el cálculo en la entrada discreta. Dicho esto, algunas soluciones de forma cerrada son posibles para el centro de gravedad de la curva, pero no es una ecuación muy buena para formular y simplificar.
Luego tenemos los puntos de la curva: el punto medio por la longitud del arco y el punto dondet El parámetro es 0.5. En mi mente elt Param es a menudo problemático, aunque fácil de calcular, y pierde significado cuando encadena múltiples Béziers uno detrás de otro para un polybézier. El centro de longitud, por supuesto, es natural siempre que la curva no esté cerrada.
También definimos otros posibles centros, el centro podría estar en el centro de gravedad de la curva del casco, el promedio de los puntos de control o el centro BB de la jaula de control. Aunque en la práctica estos no parecen funcionar muy bien.
Tenga en cuenta : aunque la curva en la imagen 1 muestra el centro BB bastante cerca de algunos centros naturales, este no es siempre el caso para curvas más complejas y especialmente polibéziers.
fuente
Como no se nos dice qué definición de "centro" usar, también podemos usar la más fácil. Esto sería
fuente