1
$\begingroup$

Suppose I have an algebraic curve in its implicit form, i.e. described as the set of points $(x,y)$ where some polynomial $P(x,y)$ becomes zero. All of this is in the real Euclidean (or with minor modifications projective) plane. If the degree of that polynomial isn't too high, I can compute a bunch of points on that curve by explicitely computing roots of the polynomial. Otherwise numeric root finding techniques might be used. So assume I have a bunch of points on the curve.

Now I want to approximate this curve using cubic Bezier splines, as many computer graphics environments provide them. To do so, I guess I'd use the points I computed above as end points of the individual spline segments. Getting them into the correct order might be tricky, in the presence of unconnected components or even self-intersections, but let's assume I manage to do so.

Next I need the Bezier control points. I guess I'd want to choose them in such a way that the tangent direction and curvature of the Bezier interpolation matches that of the algebraic curve at the point where the spline segment begins. Computing the tangent at a given point is described on Wikipedia. So I know the line connecting the end point and the control point.

But how large should the distance between the end point and the corresponding control point for the spline segment be, in order to match curvature?

1 Answers 1

2

You can get four equations for the four coordinates of the two control points by twice differentiating the defining equation $P(x,y)=0$ with respect to the curve parameter $t$:

$ \dot xP_x+\dot yP_y=0\;,\\ \ddot xP_x+\ddot yP_y+\dot x^2P_{xx}+2\dot x\dot yP_{xy}+\dot y^2P_{yy}=0\;. $

Each of these yields two equations, one at each endpoint. The first two express the same as the tangent calculation in the Wikipedia article. Together the four equations determine the four coordinates of the control points such that the spline coincides with the curve up to second order.

At both points, you can use the first equation to express $\dot x$ and $\dot y$ linearly in terms of the distance $d$ to the control point and then substitute that into the second equation to obtain an equation of the form

$ \ddot xP_x+ \ddot yP_y+ad^2=0\;. $

Then you can express the second derivatives of the coordinates as linear combinations of the distances (in contrast to the first derivatives, they will depend on both distances), and solve the resulting system of two quadratic equations in the two distances.

  • 0
    @geometrikal: Yes, that's right.2013-01-17