algorithmvectorgraphicsbeziercubic-bezier

Convert a quadratic bezier to a cubic one


What is the algorithm to convert a quadratic bezier (with 3 points) to a cubic one (with 4 points)?


Solution

  • From https://fontforge.org/docs/techref/bezier.html#converting-truetype-to-postscript:

    Any quadratic spline can be expressed as a cubic (where the cubic term is zero). The end points of the cubic will be the same as the quadratic's.

    CP0 = QP0
    CP3 = QP2

    The two control points for the cubic are:

    CP1 = QP0 + 2/3 *(QP1-QP0)
    CP2 = QP2 + 2/3 *(QP1-QP2)

    ...There is a slight error introduced due to rounding, but it is unlikely to be noticeable.