Beispiel #1
0
def createExpBSpline(geometry, splineOrder, time_min, time_max, numberOfSegments):
    if isinstance(geometry, UnitQuaternionManifold):
        ebs = UnitQuaternionBSpline(splineOrder)
        ebs.initConstantSpline(time_min, time_max, numberOfSegments, numpy.array((0, 0, 0, 1)));
    else:
        ebs = diffManifoldBSplines.createExpBSpline(geometry, splineOrder, time_min, time_max, numberOfSegments)
        #ebs.setControlVertices = lambda points, old=ebs.setControlVertices : old(points.transpose())
    return ebs
Beispiel #2
0
def createExpBSpline(geometry, splineOrder, time_min, time_max, numberOfSegments):
    if isinstance(geometry, UnitQuaternionManifold):
        ebs = UnitQuaternionBSpline(splineOrder)
        ebs.initConstantSpline(time_min, time_max, numberOfSegments, numpy.array((0, 0, 0, 1)));
    else:
        ebs = diffManifoldBSplines.createExpBSpline(geometry, splineOrder, time_min, time_max, numberOfSegments)
        #ebs.setControlVertices = lambda points, old=ebs.setControlVertices : old(points.transpose())
    return ebs
from diffManifolds import UnitQuaternionManifold, EuclideanSpace 
from visual import color
from bsplines import BSpline
import diffManifoldBSplines

geometry = EuclideanDiffManifold()
pointLength = geometry.getIdentity().shape[0]


splineOrder = 4
order = splineOrder - 1
time_max = 20
time_min = 0

numberOfSegments = 80 
ebs = diffManifoldBSplines.createExpBSpline(geometry, splineOrder, time_min, time_max, numberOfSegments)
numPoints = ebs.numVvCoefficients()

p = numpy.array((0, ))
points = [p] 
for i in range(0, numPoints - 1):
    v = numpy.random.random(1)- 0.5
    v = (0.1, )
    if(v[0]< 0) :
        v = v * -1
    p = geometry.exp(p, v * 1) 
    points.append(p)

points = numpy.array(points)

ebs.setControlVertices(points)
Beispiel #4
0
import math
from diffManifolds import UnitQuaternionManifold, EuclideanSpace
from visual import color
from bsplines import BSpline
import diffManifoldBSplines

geometry = EuclideanDiffManifold()
pointLength = geometry.getIdentity().shape[0]

splineOrder = 4
order = splineOrder - 1
time_max = 20
time_min = 0

numberOfSegments = 80
ebs = diffManifoldBSplines.createExpBSpline(geometry, splineOrder, time_min,
                                            time_max, numberOfSegments)
numPoints = ebs.numVvCoefficients()

p = numpy.array((0, ))
points = [p]
for i in range(0, numPoints - 1):
    v = numpy.random.random(1) - 0.5
    v = (0.1, )
    if (v[0] < 0):
        v = v * -1
    p = geometry.exp(p, v * 1)
    points.append(p)

points = numpy.array(points)

ebs.setControlVertices(points)