Рассчитать матрицу вращения - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть две точки в исходной системе координат, называемые P и Q. Затем, переместив и повернув координаты, мы получим новую координату, а P 'и Q', P 'и Q' будут в локальной координате. Матрица вращения, которую мы назвали R Матрица вращения, которую мы назвали t Тогда

P = R*P' + t
Q = R*Q' + t

R = [[cosx, sinx], [- sinx, cosx]] t = [a, b]

Мы знаем P, Q, P ', Q' и хотим получить R и т.

        sinx = ((p.x - q.x)/(p_.x - q_.x) - (p.y - q.y)/(p_.y - q_.y)) / \
            ((p_.y - q_.y)/(p_.x - q_.x) - (q_.x - p_.x)/(p_.y - q_.y))
        cosx = ((p.x - q.x)/(p_.y - q_.y) - (p.y - q.y)/(q_.x - p_.x)) / \
            ((p_.x - q_.x)/(p_.y - q_.y) - (p_.y - q_.y)/(q_.x - p_.x))

        self.rotationMatrix =  np.mat([[cosx, sinx],[-sinx, cosx]])

Я не хочу, чтобы длинный код вызывал c R, Is Есть элегантный способ найти матрицу вращения через NumPy 100

...