[vtkusers] Curve / Equal Subdivision

Bill Lorensen bill.lorensen at gmail.com
Thu Jul 12 08:12:06 EDT 2012


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>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>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>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
>>>
>>> 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 by 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
>
>
>
> --
> Jérôme Velut
> R&D Engineer
> Kitware SAS
> 26 rue Louis Guérin
> 69100 Villeurbanne, France
> F: +33 (0)4.37.45.04.15http://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/2c4eef2e/attachment.htm>


More information about the vtkusers mailing list