I have an interpolation curve, where I want to use a cubic rational Bezier curve to interpolate two points with a given direction and curvature at each point. The interpolating curve should not have inflection points between the two end points, and have some other geometric properties that are sometimes summarized as it being a "fair" curve.
This problem has been discussed by a number of authors, with the result being that it is possible to find such a curve, and that there are still two remaining degrees of freedom. The challenge is to define parameters that define those degrees of freedom, while preserving the desired characteristics of the curve.
I am trying to implement this paper by Plauszny et al, which uses points on a curve of singular points as one of the parameters. By following the procedure as described I obtain x and z values from the table on page 20(68). According to the 5th line from the bottom of the pseudocode on page 22(70), I should be able to determine the point $\bar B=(\bar s, \bar t, \bar u)$. But how to do this mystifies me.
I have tried (without success)
- Setting $y=1$ and performing the transformation $\Phi$ from page 12(70)
- Setting $y=1-x-z$, so interpreting (x,y,z) as a barycentric system, and applying $\Phi$
- Setting the guide curve $Q(y)=0$, solving for y, and then applying $\Phi$
None of these generally lead to valid curves, let alone ones that fit my boundary conditions. I suspect I am missing a step.
If there are any more tags to which you feel this relates, please feel free to add.
DOI of the paper in question: 10.1016/S0377-0427(98)00208-8
It seems that my first interpretation (y=1) was correct, but there was a mistake in the method for obtaining for $x_1$ resp. $z_1$ on page 68. Wether in the paper or only in my implementation, I cannot say.
In any event, I used Wolfram Alpha, to re-compute the equations from eq. (3) (with Q=0, and y=1), and was able to reproduce the curves of Plauszny et al. Thank you to everyone who spent time considering this problem.
The input for Wolfram Alpha that I used is this:
and
respectively. The solution with the negative discriminator must be used.
(s,t,u,q=$s_0,t_0,u_0,q_0$ and r=$q_2$)