[SciPy-user] scipy.odeint question

Jelle Feringa / EZCT Architecture & Design Research jelle.feringa at ezct.net
Fri Aug 18 10:24:47 CDT 2006


I have a question on how/if I could use scipy.odeint for the following; I
have a function that approximates a given distance on a nurbs curve. The
algorithm is rather crude, so I'd like to generalize and make it more
efficient. Scipy.odeint could be a suitable function to do so, but I'm
having a hard time implementing it.

The function I'd like to integrate with scip.odeint is the following:

 

while 1:

            print 'approxLengthPLUS',approxLength

            if abs(distance-approxLength) < tolerance:

                break

            if approxLength < distance:

                tangent = vec3(RS.PointCoordinates(pointIdPLUS)) +
vec3(crv.tangent(pointIdPLUS)[2]).normalize() * (1.5*vectorScale)

                closestPointIdPLUS = crv.closestPoint(tangent)

                closestCoord    = crv.evaluateCrv(closestPointIdPLUS)

                RS.PointCoordinates(pointIdPLUS, closestCoord)

            else :

                tangent = vec3(RS.PointCoordinates(pointIdPLUS)) +
vec3(crv.tangent(pointIdMIN)[2]).normalize() * (-0.75*vectorScale)

                closestPointIdPLUS  = crv.closestPoint(tangent)

                closestCoord    = crv.evaluateCrv(closestPointIdPLUS)

                RS.PointCoordinates(pointIdPLUS, closestCoord)

            n+=1

            approxLength = crv.length(subDomain=[crvParameter,
closestPointIdPLUS])

            vectorScale  = approxLength*(tolerance/n)

 

Which basically scans a nurbs curve back & forth until a point is located
within the tolerance.

The method crv.closestPoint(tangent) returns the closest parameter of the
current point 

The method crv.length(subDomain=[crvParameter, closestPointIdPLUS]) returns
the distance from the starting point, to the point currently evaluated. Any
pointers in how I could integrate such a function with scipy are greatly
appreciated!

 

Cheers,

 

-jelle

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/scipy-user/attachments/20060818/fae2f2ea/attachment.html 


More information about the SciPy-user mailing list