
Wed, 06/03/2009 - 13:47
Hi,
I'm trying to compute the abscissa on either side of the parameter on a curve.
To do so, I've got a reversed and non-reversed instance of the curve.
To get a decent estimate of where the abscissa should lie on either side of the curve, by computing the intersection of a sphere, placed at the `from` parameter on the curve.
What strikes me is that even though I've reversed the curve, and have given good parameter estimates, that GCPnts_AbscissaPoint finds the same point on both the reversed and non-reversed point. Worse, also points are found that lie not at the given distance at all. Have a look at: http://jelleferinga.com/files/abscissa.png . You'll see some vertices that lie on the inner blue ring.
The vertex close to the red line represents the `from` parameter of GCPnts_AbscissaPoint. In three cases, the right point is found, but if you look at the top right vertices you see that the found point is really close to the `from` parameter. Could it be that GCPnts_AbscissaPoint is not handling seams well? Also, I'm curious how I can find the abscissa on either side of the curve!
Thanks in advance,
-jelle
Wed, 06/03/2009 - 14:24
duhhh... of course using the _sign_ of the distance determines on which side of the parameter the abscissa is found... stupid me...
still, GCPnts_AbscissaPoint fails when the `from` U0 parameter is close the end parameter and the Ui parameter is close to the beginning ( so, near the seam of the curve )
As you see here, my intersection parameters are near the end/start, this is when GCPnts_AbscissaPoint fails on me.
domain: (-1.0, 2.9999999999999942) found these spheric intersection parameters: [-0.77512245798861978, 2.7011170202961403 ]
parameter to start from: 2.99201746962
Cheers,
-jelle
Wed, 06/03/2009 - 17:04
When I rebuild the curve such that Contunuity > C1, and make sure that my curve is closed ( does periodic matter? ) I get the expected results.
Wed, 06/03/2009 - 19:22
Correction; Geom_BSpline.IsPeriodic is required, when wanting to find the abscissa on either side of a parameter, this way the seam doesn't get in the way.
Makes sense.