openalea.phenomenal.calibration.transformations.random_quaternion

openalea.phenomenal.calibration.transformations.random_quaternion(rand=None)[source]

Return uniform random unit quaternion.

rand: array like or None

Three independent random variables that are uniformly distributed between 0 and 1.

>>> q = random_quaternion()
>>> numpy.allclose(1, vector_norm(q))
True
>>> q = random_quaternion(numpy.random.random(3))
>>> len(q.shape), q.shape[0]==4
(1, True)