Subdividing a Coons Patch

bezier-curvegeometry

Given a Coons Patch, how could I subdivide the patch to create two seperate patches?

So far I've been able to subdivide the effected bezier curves using the Casteljau algorithm but I am unable to figure out how to generate the control points for the bezier curve between the two patches.

What I've tried so far is finding the average of the control points belonging to the curves on either side as well as just using equidistant points. While I can get a good approximation of the correct position in simple cases, this quickly breaks down based on how extreme the curve is.

Below is an example of the curves I am trying to generate by splitting a Coons patch. On the left you can the original bezier curves used to generate a sample Coons patch. On the right is an approximation of the new bezier curves needed to generate two adjacent Coons patches. So far I've been able to figure out the coordinates of all the positions outside the red circled area as well as the top and bottom most points inside the circle. The trouble I am having right now is figuring out the position of the two points in the center of the circled area.

Coons Patch Example

Best Answer

Expand the parametric equation of the splitting curve. This is obtained by expliciting the Coons patch equation from the Bezier sides and freezing one of the parameters to $\frac12$.

Doing so, you will obtain a polynomial curve (if I am right, of degree one more than the initial Beziers). Then the X, Y and Z polynomials can be transformed to the Bernstein basis (by means of a linear transform), giving you the coordinates of the required control points.