[vtkusers] Curve / Equal Subdivision

Jean-Hugues Royer jhroyer at joher.com
Thu Jul 12 08:35:13 EDT 2012


Hi,

If I do that, the first ~30 points have a distance of 1 and the rest 
0.18648.

Regards.

On 12/07/2012 14:12, Bill Lorensen wrote:
> The splines are parameterized by an approximation to the arc length. 
> Also, the boundary conditions of the splines can affect the shape of 
> the spline. Try this version of the script:
>
> #!/usr/bin/python
> import vtk
>
> lineSource = vtk.vtkLineSource( )
> lineSource.SetPoint1( 0, 0, 0 )
> lineSource.SetPoint2( 95, 0 ,0 )
> lineSource.Update( )
>
> mySpline = vtk.vtkCardinalSpline( )
> mySpline.SetLeftConstraint(2)
> mySpline.SetLeftValue(0.0)
> mySpline.SetRightConstraint(2)
> mySpline.SetRightValue(0.0)
>
> spline = vtk.vtkSplineFilter( )
> spline.SetSpline(mySpline)
> spline.SetInputConnection( lineSource.GetOutputPort( ))
> spline.SetSubdivideToLength( )
> spline.SetLength( 0.18648 )
> spline.Update( )
>
> points = spline.GetOutput().GetPoints()
>
> meanDist = 0
>
> for i in range( 1, points.GetNumberOfPoints() ):
>   pt = points.GetPoint(i)
>   ptPrec = points.GetPoint(i-1)
>   meanDist += pt[0] - ptPrec[0]
>   print 'pt[',i,'] X: ',pt[0],' | Distance with previous point:',pt[0] 
> - ptPrec[0]
>
> print 'Mean distance: ', meanDist / points.GetNumberOfPoints()
> print 'Expected number of points: ', 95./0.18648
> print 'Effective number of points: ', points.GetNumberOfPoints()
>
>
>
> On Thu, Jul 12, 2012 at 3:06 AM, Jerome Velut 
> <jerome.velut at kitware.com <mailto:jerome.velut at kitware.com>> wrote:
>
>     Hi Bill and Jean-Hugues,
>
>     I was able to reproduce the bug for a straight line with vtk-5.10
>     python (script attached). I also get the same spline from paraview
>     by exposing the vtkSplineFilter (hopefully!).
>
>     Jerome
>
>     Le 10/07/2012 19:09, Bill Lorensen a écrit :
>>     It is always possible that there is a bug.
>>
>>     Can you provide a small, compilable example that illustrates the
>>     problem?
>>
>>     On Tue, Jul 10, 2012 at 10:50 AM, Jean-Hugues Royer
>>     <jhroyer at joher.com <mailto:jhroyer at joher.com>> wrote:
>>
>>         Hi,
>>
>>         I also tried vtkSplineFIlter using SetSubdivideToLength() and
>>         SetLength(distance).
>>
>>         But the result is that the points are not equally distributed.
>>
>>         When you provide a curve the beginning and ending points are
>>         not equally distributed while the center points are.
>>
>>         When you provide a straight line no points at all are equally
>>         distributed.
>>
>>         I get exact same result when using
>>         vtkSplineFIlter/SetSubdivideToLength/SetLength and
>>         vtkParametricSpline/SetParametricFunction/SetUResolution.
>>
>>         May be I'm missing something ?
>>
>>
>>         On 10/07/2012 16:21, Bill Lorensen wrote:
>>>         Look at vtkSplineFIlter
>>>         Here is one use:
>>>         http://vtk.org/Wiki/VTK/Examples/Cxx/PolyData/FitSplineToCutterOutput
>>>
>>>
>>>         On Tue, Jul 10, 2012 at 9:59 AM, Jean-Hugues Royer
>>>         <jhroyer at joher.com <mailto:jhroyer at joher.com>> wrote:
>>>
>>>             Hi,
>>>
>>>             I have a curve which is a vtkPoints array.
>>>
>>>             I would like to generate another vtkPoints array where
>>>             every consecutive points have the same distance.
>>>             (basically divide the curve to n equals segments)
>>>
>>>             I tried to use
>>>             vtkParametricSpline/vtkParametricFunctionSource but I
>>>             was only able to change the number of points to another
>>>             value but I didn't find how to specify that these new
>>>             points should be equally distributed.
>>>
>>>             Any idea ?
>>>
>>>             _______________________________________________
>>>             Powered by www.kitware.com <http://www.kitware.com>
>>>
>>>             Visit other Kitware open-source projects at
>>>             http://www.kitware.com/opensource/opensource.html
>>>
>>>             Please keep messages on-topic and check the VTK FAQ at:
>>>             http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>>             Follow this link to subscribe/unsubscribe:
>>>             http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>
>>>
>>>
>>>         -- 
>>>         Unpaid intern in BillsBasement at noware dot com
>>>
>>
>>
>>
>>     -- 
>>     Unpaid intern in BillsBasement at noware dot com
>>
>>
>>
>>     _______________________________________________
>>     Powered bywww.kitware.com  <http://www.kitware.com>
>>
>>     Visit other Kitware open-source projects athttp://www.kitware.com/opensource/opensource.html
>>
>>     Please keep messages on-topic and check the VTK FAQ at:http://www.vtk.org/Wiki/VTK_FAQ
>>
>>     Follow this link to subscribe/unsubscribe:
>>     http://www.vtk.org/mailman/listinfo/vtkusers
>
>
>     -- 
>     Jérôme Velut
>     R&D Engineer
>     Kitware SAS
>     26 rue Louis Guérin
>     69100 Villeurbanne, France
>     F:+33 (0)4.37.45.04.15  <tel:%2B33%20%280%294.37.45.04.15>
>     http://www.kitware.fr  
>
>
>
>
> -- 
> Unpaid intern in BillsBasement at noware dot com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120712/ce91885e/attachment.htm>


More information about the vtkusers mailing list