Coons Patches
Coons Patches
Coons Patch is a technique that forms a Bezier Patch from 4 lines connected by their end points. Parallel sides have to have
the same number points in each line. The center control points are calculated by “a blend of two linear interpolations and
one bilinear interpolation” The Essentials of CAGD by Gerald Farin and Dianne Hansford.

The above images use the same control grid. The top image was evaluated 100 times in U and V. The second row left
image is the wireframe of the top image. The second row right image was evaluated 1 time in U and V. The bottom left
image was evaluated 100 times in U and 1 time in V. The bottom right image was evaluated 1 time in U and 100 times in V.

The program has a dialog under view where the user can change the parameters.
  • It shows the number of triangles
  • The number of times evaluated in U and V
  • The positions of the boundary lines
  • The calculated values of the six center control points
  • A button to reset the boundary control points to their original positions
  • Check boxes to toggle wireframe and the control grid
Control Keys
  • W toggles wireframe
  • U increase the number of division in U
  • Z resets the number of division in U and V to 1
  • C toggles the control grid
  • V increases the number of divisions in V
This is an interesting program to play with because changing a control point affects the surface in a very drastic way. Also,
the surfaces created are tessellated to a high degree quickly. It takes about 20 seconds to tessellate a 3 million triangle
surface.

This project was originally done in MS Visual C++ 6.0. I made sure it would compile in MS VC++ 8.0. I used MFC as a
framework to handle the system events and provide nice windows based features. The project uses the standard single
view/doc architecture. I used openGL as the graphics API.
Comments