Trnasform Vector from One object coordinate systeme to another.

Hi, i want to know how do i transform one vector in one coordinate systeme to another object coordinate system. Thanks

I think that a vector v1 in the reference system of object1 can be expressed in the reference system of object2 as:

v2 = M2 * M1.transposed()*v1

where:
M1 = object1.worldOrientation
M2 = object2.worldOrientation

Vectors can be transformed by rotating them by an object’s orientation matrix. You can undo a transformation using the inverse of the matrix.

# example vector in world coordinates
vec = mathutils.Vector([1, 0, 0])

# transforming to an object's coordinate system
vec.rotate(obj.worldOrientation)

# undoing the transform
vec.rotate(obj.worldOrientation.inverted())

Thanks for your help :slight_smile: