Hi
I am trying to find points at the edge of a nurb surface. The code I have, works well at v=0 but I run in to something I don’t understand at the other end (maxV). I am getting the .NurbSurface.PointAt(u, 0), then finding the NurbSurface.ClosestPoint and then converting back to a point3d with a NurbSurface.PointAt. However when I try to do this at the other edge of the surface using NurbSurface.PointAt(u, NurbSurface.Points.CountV - 1), I get a point that appears to be 2v off the end of the surface. I discovered this yesterday in another way - I was drawing isocurves on the surface for i=0: i < nurbsSrf.Points.CountV; i++ and I got 2 curves (at equal spacing) beyond the end of the surface. In other words. The actual max v on the surface appears to be at nurbsSrf.Points.CountV - 3.
To give the some sample code and a screen dump of the points I’m printing (just to help diagnose the problem - these aren’t the final points):
Point3d pointMin = nurbsSrf.PointAt(u, 0);
Point3d pointMinAdj = nurbsSrf.PointAt(u, 1);
Point3d pointMax = nurbsSrf.PointAt(u, nurbsSrf.Points.CountV - 1);
Point3d pointMaxAdj = nurbsSrf.PointAt(u, nurbsSrf.Points.CountV - 2);
doc.Objects.AddPoint(pointMin);
doc.Objects.AddPoint(pointMinAdj);
doc.Objects.AddPoint(pointMax);
doc.Objects.AddPoint(pointMaxAdj);