[vtkusers] Curve / Equal Subdivision
Jean-Hugues Royer
jhroyer at joher.com
Thu Jul 12 09:09:30 EDT 2012
Hi,
I converted it to Activiz/C#, I will let Jerome try exactly your code
(since I can't).
Regards.
On 12/07/2012 14:49, Bill Lorensen wrote:
> In the example I sent? I happen to be running VTK6, but there should
> not have been changes.
>
> On Thu, Jul 12, 2012 at 8:35 AM, Jean-Hugues Royer <jhroyer at joher.com
> <mailto:jhroyer at joher.com>> wrote:
>
> 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
>>
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120712/be545c4d/attachment.htm>
More information about the vtkusers
mailing list