NRBCOONS: Construction of a Coons patch.
Calling Sequence:
srf = nrbcoons(ucrv1, ucrv2, vcrv1, vcrv2)
INPUT:
ucrv1 : NURBS curve defining the bottom U direction boundary of
the constructed NURBS surface.
ucrv2 : NURBS curve defining the top U direction boundary of
the constructed NURBS surface.
vcrv1 : NURBS curve defining the bottom V direction boundary of
the constructed NURBS surface.
vcrv2 : NURBS curve defining the top V direction boundary of
the constructed NURBS surface.
OUTPUT:
srf : Coons NURBS surface patch.
Description:
Construction of a bilinearly blended Coons surface patch from four NURBS
curves that define the boundary.
The orientation of the four NURBS boundary curves.
^ V direction
|
| ucrv2
------->--------
| |
| |
vcrv1 ^ Surface ^ vcrv2
| |
| |
------->-----------> U direction
ucrv1
Examples:
// Define four NURBS curves and construct a Coons surface patch.
pnts = [ 0.0 3.0 4.5 6.5 8.0 10.0;
0.0 0.0 0.0 0.0 0.0 0.0;
2.0 2.0 7.0 4.0 7.0 9.0];
crv1 = nrbmak(pnts, [0 0 0 1/3 0.5 2/3 1 1 1]);
pnts= [ 0.0 3.0 5.0 8.0 10.0;
10.0 10.0 10.0 10.0 10.0;
3.0 5.0 8.0 6.0 10.0];
crv2 = nrbmak(pnts, [0 0 0 1/3 2/3 1 1 1]);
pnts= [ 0.0 0.0 0.0 0.0;
0.0 3.0 8.0 10.0;
2.0 0.0 5.0 3.0];
crv3 = nrbmak(pnts, [0 0 0 0.5 1 1 1]);
pnts= [ 10.0 10.0 10.0 10.0 10.0;
0.0 3.0 5.0 8.0 10.0;
9.0 7.0 7.0 10.0 10.0];
crv4 = nrbmak(pnts, [0 0 0 0.25 0.75 1 1 1]);
srf = nrbcoons(crv1, crv2, crv3, crv4);
nrbplot(srf,[20 20],220,45);
Copyright (C) 2000 Mark Spink
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The following code
pnts = [ 0.0 3.0 4.5 6.5 8.0 10.0;
0.0 0.0 0.0 0.0 0.0 0.0;
2.0 2.0 7.0 4.0 7.0 9.0];
crv1 = nrbmak(pnts, [0 0 0 1/3 0.5 2/3 1 1 1]);
pnts= [ 0.0 3.0 5.0 8.0 10.0;
10.0 10.0 10.0 10.0 10.0;
3.0 5.0 8.0 6.0 10.0];
crv2 = nrbmak(pnts, [0 0 0 1/3 2/3 1 1 1]);
pnts= [ 0.0 0.0 0.0 0.0;
0.0 3.0 8.0 10.0;
2.0 0.0 5.0 3.0];
crv3 = nrbmak(pnts, [0 0 0 0.5 1 1 1]);
pnts= [ 10.0 10.0 10.0 10.0 10.0;
0.0 3.0 5.0 8.0 10.0;
9.0 7.0 7.0 10.0 10.0];
crv4 = nrbmak(pnts, [0 0 0 0.25 0.75 1 1 1]);
srf = nrbcoons(crv1, crv2, crv3, crv4);
nrbplot(srf,[20 20]);
title('Construction of a bilinearly blended Coons surface.');
hold off
Produces the following figure
| Figure 1 |
|---|
![]() |
Package: nurbs