[vtkusers] vtkSpline

Ho Ngoc Ha ha_lennon at yahoo.com
Sat Sep 5 01:45:10 EDT 2009


Hi,

I have a set of points, I just need to find a spline that pass through all
of those points and generate a number of output points.

Here is what I did

int numberOfInputPoints = points->GetNumberOfPoints();
   
    vtkCardinalSpline* aSplineX;
    vtkCardinalSpline* aSplineY;
    vtkCardinalSpline* aSplineZ;    

    aSplineX = vtkCardinalSpline::New();
    aSplineY = vtkCardinalSpline::New();
    aSplineZ = vtkCardinalSpline::New();

    for (int i=0; i<numberOfInputPoints; i++) 
    {
      double x = points->GetPoint(i)[0];
      double y = points->GetPoint(i)[1];
      double z = points->GetPoint(i)[2];
          aSplineX->AddPoint(i, x);
          aSplineY->AddPoint(i, y);
          aSplineZ->AddPoint(i, z);
    
    }

    vtkPoints* polypoints = vtkPoints::New();
    

    int numberOfOutputPoints = 20;

       double t;
       for (int i=0; i<numberOfOutputPoints; i++) 
    {
      t
=(double)(numberOfInputPoints-1)/(double)(numberOfOutputPoints-1)*(double)i;
      std::cout << "t: " << t << std::endl;
      polypoints->InsertNextPoint(aSplineX->Evaluate(t),
aSplineY->Evaluate(t),
                       aSplineZ->Evaluate(t));
    }


I thought the newly generated points will be stored in polypoints? But when
I checked it, it only contains the first and the last point of my input
points.

I am new to vtk so please help me. Thank you very much


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090904/0c113f9a/attachment.htm>


More information about the vtkusers mailing list