dlwpt-code icon indicating copy to clipboard operation
dlwpt-code copied to clipboard

xyz2irc() is not inverse of irc2xyz()

Open jiangjy1982 opened this issue 3 years ago • 0 comments

In this line, the inverse rotation needs to be left-multiplied rather than right-multiplied.

The correctness can be verified by the following code snippet:

import numpy as np
from util.util import irc2xyz, xyz2irc

origin_xyz = np.array([-100, -200, -300])
vxSize_xyz = np.array([1, 1, 2])
theta = np.radians(30)
c, s = np.cos(theta), np.sin(theta)
direction_a = np.array(((c, -s, 0), (s, c, 0), (0, 0, 1)))
xyz2irc([*irc2xyz([1, 2, 3], origin_xyz, vxSize_xyz, direction_a)], origin_xyz, vxSize_xyz, direction_a)
# Expect to return [1, 2, 3]

jiangjy1982 avatar Aug 09 '22 18:08 jiangjy1982