Skip to main content

Coons patch definition and point calculation

Short answer

A Coons patch is defined by four boundary curves and bilinearly blended by P=ruled boundary terms minus corner bilinear term. Corners agree at (0,0,0), (4,0,0), (0,3,0), (4,3,2), so the patch is valid. The required points are P(0.5,0.5)=(2,1.5,0) and P(0.5,0.25)=(2,0.75,-0.0625).

Explain the Coons patch and the bilinearly blended Coons surface formula. A patch has the boundary curves P(u,0) = (4u, 0, 0), P(u,1) = (4u, 3, 2u^2), P(0,w) = (0, 3w, 0) and P(1,w) = (4, 3w, 2w^2). Check the corner compatibility and calculate the surface point at (u, w) = (0.5, 0.5) and (0.5, 0.25).

A Coons patch is a surface patch defined by its four boundary curves (not by a net of control points). The interior is obtained by blending the boundaries, so the patch exactly passes through all four edges. It is used to fill a four-sided region bounded by given curves, such as a gap between existing surfaces.

Bilinearly blended Coons surface

P(u,w)=(1−w)P(u,0)+w P(u,1)+(1−u)P(0,w)+u P(1,w)−[(1−u)(1−w)P00+u(1−w)P10+(1−u)w P01+uw P11]\begin{aligned} \mathbf P(u,w)={}&(1-w)\mathbf P(u,0)+w\,\mathbf P(u,1)+(1-u)\mathbf P(0,w)+u\,\mathbf P(1,w) \\ &-\big[(1-u)(1-w)\mathbf P_{00}+u(1-w)\mathbf P_{10}+(1-u)w\,\mathbf P_{01}+uw\,\mathbf P_{11}\big] \end{aligned}

The first four terms are two ruled surfaces; the bracket (the bilinear surface through the corners) is subtracted because the corners are counted twice.

Corner compatibility

P00=(0,0,0)\mathbf P_{00}=(0,0,0), P10=(4,0,0)\mathbf P_{10}=(4,0,0), P01=(0,3,0)\mathbf P_{01}=(0,3,0), P11=(4,3,2)\mathbf P_{11}=(4,3,2).

The curves agree at every corner (e.g. P(u=1,w=1)=(4,3,2)P(u{=}1,w{=}1)=(4,3,2) from both the top and right curves), so the patch is valid.

At (0.5, 0.5)

Boundary points: P(0.5,0)=(2,0,0)\mathbf P(0.5,0)=(2,0,0), P(0.5,1)=(2,3,0.5)\mathbf P(0.5,1)=(2,3,0.5), P(0,0.5)=(0,1.5,0)\mathbf P(0,0.5)=(0,1.5,0), P(1,0.5)=(4,1.5,0.5)\mathbf P(1,0.5)=(4,1.5,0.5).

Ruled terms: 0.5(2,0,0)+0.5(2,3,0.5)+0.5(0,1.5,0)+0.5(4,1.5,0.5)=(4,3,0.5)0.5(2,0,0)+0.5(2,3,0.5)+0.5(0,1.5,0)+0.5(4,1.5,0.5)=(4,3,0.5)

Corner term: 0.25[(0,0,0)+(4,0,0)+(0,3,0)+(4,3,2)]=0.25(8,6,2)=(2,1.5,0.5)0.25[(0,0,0)+(4,0,0)+(0,3,0)+(4,3,2)]=0.25(8,6,2)=(2,1.5,0.5)

P(0.5,0.5)=(4,3,0.5)−(2,1.5,0.5)=(2, 1.5, 0)\mathbf P(0.5,0.5)=(4,3,0.5)-(2,1.5,0.5)=(2,\ 1.5,\ 0)

At (0.5, 0.25)

Boundary points: P(0.5,0)=(2,0,0)\mathbf P(0.5,0)=(2,0,0), P(0.5,1)=(2,3,0.5)\mathbf P(0.5,1)=(2,3,0.5), P(0,0.25)=(0,0.75,0)\mathbf P(0,0.25)=(0,0.75,0), P(1,0.25)=(4,0.75,0.125)\mathbf P(1,0.25)=(4,0.75,0.125).

Ruled terms: 0.75(2,0,0)+0.25(2,3,0.5)+0.5(0,0.75,0)+0.5(4,0.75,0.125)=(1.5+0.5+0+2, 0.75+0.375+0.375, 0.125+0.0625)=(4, 1.5, 0.1875)0.75(2,0,0)+0.25(2,3,0.5)+0.5(0,0.75,0)+0.5(4,0.75,0.125)=(1.5+0.5+0+2,\ 0.75+0.375+0.375,\ 0.125+0.0625)=(4,\ 1.5,\ 0.1875)

Corner term: (0.5)(0.75)(0,0,0)+(0.5)(0.75)(4,0,0)+(0.5)(0.25)(0,3,0)+(0.5)(0.25)(4,3,2)=(1.5+0.5, 0.375+0.375, 0.25)=(2, 0.75, 0.25)(0.5)(0.75)(0,0,0)+(0.5)(0.75)(4,0,0)+(0.5)(0.25)(0,3,0)+(0.5)(0.25)(4,3,2)=(1.5+0.5,\ 0.375+0.375,\ 0.25)=(2,\ 0.75,\ 0.25)

P(0.5,0.25)=(4,1.5,0.1875)−(2,0.75,0.25)=(2, 0.75, −0.0625)\mathbf P(0.5,0.25)=(4,1.5,0.1875)-(2,0.75,0.25)=(2,\ 0.75,\ -0.0625)

Answer: P(0.5, 0.5) = (2, 1.5, 0); P(0.5, 0.25) = (2, 0.75, -0.0625).

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computer Aided Design chapter 4 questions →