|
Generating a parallel surfaceA parallel surface or an offset surface if you prefer is a surface for which the points on one surface are equidistant to a corresponding point in another one and the derivative at that point is the same on both surfaces. I'll admit my library doesn't currently ensure that a resulting parallel surface will behave exactly like this, but it's close enough. The algorithm computes the points for the parallel surface such that s(u,v) is defined from a generating surface as s(u,v) + d * n(u,v), where s(u,v) is the point on the surface, d is the distance between them and n(u,v) is the normal at the point (u,v). The library cuts corners by only moving the points associated with the control points: the points of maximal influence. It doesn't verify that the relationship between the two surfaces holds for all (u,v). If you'd prefer to have a more robust implementation, talk to me. Remember when using this function that the parallel surface is generated by using the normal to the surface. If the surface as a normal which is mis-behaving you will get strange results. It doesn't happen often, so you shouldn't loose sleep over this. An example with the nurbs editor
|