una trazo pierre métodos lineas hacer graficacion curvas curva como bézier math bezier

math - pierre - Esquema del trazo de la curva bezier cúbica



pierre bézier (3)

Por trazo de la curva de bezier cúbico quiero decir que representa una curva ''A'' con un ancho de línea específico ''w''.

¿Cómo puedo obtener otras curvas de bezier cúbicas que describen el contorno del trazo de bezier ''A''?


QPainterPathStroker de Qt (es código abierto y código bastante legible) utiliza el algoritmo descrito en el documento antes mencionado para hacer lo que quiera.


Hacer es exactamente como otros lo han explicado muy difícil. La curva de compensación no es un Bezier cúbico y es muy difícil de resolver. Entonces las concavidades que son más profundas que el desplazamiento causan problemas de intersección.

La buena noticia es que normalmente desea calcular un desplazamiento de trazo para la representación, por lo que solo necesita precisión de píxeles. Además, las diversas intersecciones aún crean un polígono relleno, si observa la regla de devanado para el llenado de polígono. Entonces, aplana la curva primero, luego se compensa de forma lineal y se convierte en un problema de polígono en línea recta.

Algunos códigos aquí se pueden usar como una implementación de referencia: https://github.com/memononen/nanosvg


Ohhh. Desea obtener las curvas de compensación de una curva bezier.

Malas noticias. esto es difícil porque estas curvas no se pueden derivar simplemente numéricas. Contienen todo tipo de intersecciones, bucles y otras cosas desagradables.

Sin embargo, hay algunas aproximaciones. El mejor enfoque que he leído hasta ahora proviene de un artículo de Thomas F. Hain ( Aplanamiento rápido y preciso de Cubic Bézier Path y Offset Curves ).

Se aplana, por lo que su papel se trata principalmente de descomponer las curvas de desplazamiento en segmentos de línea y segmentos circulares de arco, pero puede fusionarlos de nuevo a Béziers más tarde.

Para una mejor comprensión es posible que desee leer sus otros documentos relacionados bezier también.