[vtk-developers] Class design for spline visualizations

David Thompson david.thompson at kitware.com
Fri Jun 26 16:41:58 EDT 2015


Hi Lin,

Knot insertion should not fail when a knot is not repeated. Instead, by inserting the same knot value multiple times we can convert the control polygon to a series of Bézier patches. If you start with a knot vector of {0,1,2,3} for a degree 2 curve, then you can insert knots until the knot vector is {0,0,0,1,1,1,2,3}. The resulting control points for the knot interval [0,1] are a valid Bézier control polygon. You can do the same for other knot values to extract Bézier patches for the intervals [1,2] and [2,3].

	David


> On Jun 26, 2015, at 4:08 PM, Lin M <majcjc at gmail.com> wrote:
> 
> Hi Dr. Thompson,
> 
> I have a question about the knot vector and the knot insertion.
> Currently the method for knot insertion is based on the algorithm from the NURBS book where it always assumes that the first value and last value in the knot vector repeat p+1 times. This makes the endpoints of the curve always coincide with the first and last control points. As you mentioned before, the knot vector may not always be like this and in such cases the algorithm will fail. Is there any method to deal with this?
> 
> Best,
> Lin
> 
> On Fri, Jun 26, 2015 at 1:06 AM, Lin M <majcjc at gmail.com> wrote:
> Hi Dr. Thompson,
> 
> I have added a method in vtkPatchInterpolation to generate triangle strips for surfaces. I tested a cylindrical surface patch from the NURBS book and I think it's correct.
> 
> Best,
> Lin
> 
> On Thu, Jun 25, 2015 at 7:32 PM, David Thompson <david.thompson at kitware.com> wrote:
> Hi Lin,
> 
> > Your last message is quite informative. I think it is mainly to implement a method in vtkPatchInterpolation which takes in a bezier patch, number of samples and ...
> 
> 
> That would be a great start. Eventually it would be nice to have curvature-adapted surfaces, but just accepting a number of samples along each axis will be something we need in any event.
> 
> > ... return a vtkUnstructuredGrid?
> 
> I would accept a vtkUnstructuredGrid pointer as input and insert into it so that it is easy to create one grid with triangles from multiple patches.
> 
>         David
> 
> 



More information about the vtk-developers mailing list