예제 #1
0
파일: QuatTest.py 프로젝트: DanNixon/mantid
    def test_rotate(self):
        a = math.sqrt(2.0)/2.0
        #Trivial
        p = Quat(1,0,0,0) #Identity quaternion
        v = V3D(1,0,0)
        orig_v = v;
        p.rotate(v);
        self.assertEquals(orig_v,v)
        # Now do more angles
        v = V3D(1,0,0);
        p = Quat(90., V3D(0,1,0)); #90 degrees, right-handed, around y
        p.rotate(v);
        self.assertEquals(v, V3D(0,0,-1))

        v = V3D(1,0,0);
        p = Quat(45., V3D(0,0,1))
        p.rotate(v);
        self.assertEquals(v, V3D(a, a, 0))
예제 #2
0
    def test_rotate(self):
        a = math.sqrt(2.0)/2.0
        #Trivial
        p = Quat(1,0,0,0) #Identity quaternion
        v = V3D(1,0,0)
        orig_v = v;
        p.rotate(v);
        self.assertEquals(orig_v,v)
        # Now do more angles
        v = V3D(1,0,0);
        p = Quat(90., V3D(0,1,0)); #90 degrees, right-handed, around y
        p.rotate(v);
        self.assertEquals(v, V3D(0,0,-1))

        v = V3D(1,0,0);
        p = Quat(45., V3D(0,0,1))
        p.rotate(v);
        self.assertEquals(v, V3D(a, a, 0))
def MyRotateFunction(vector, axis, angle):
    from copy import copy
    q = Quat(angle, axis)
    new_vector = copy(vector)
    q.rotate(new_vector)
    return new_vector