使用两组坐标旋转对象

Rotating an object using two sets of coordinates

我正在尝试创建一个简单的游戏,我有一个图像(像这样的箭头:--->)我想指向鼠标。如果我知道鼠标位置和图像的位置,我当然可以做一些数学运算来旋转图像,使其指向鼠标指针。那么我需要做什么才能以这种方式旋转对象(围绕中心)?

如果我想将对象指向另一组坐标,我是否也可以这样做?

对于旋转,您可以使用旋转矩阵、欧拉角或四元数。我会使用后者,因为他们没有万向节锁的问题。它们都是可以互换的,但是有很多约定,请注意!

欧拉角的问题是,欧拉角有很多。这听起来有点奇怪,我知道。我的意思是有各种各样的约定,你必须知道你当前使用的是哪一个,否则你会引入错误。下图先绕z(D)轴旋转,再绕新的x'(C)轴,再绕z'(B)轴旋转。

使用 quaternions, this problem can be avoided alltogether. Eventhough it introduces some new ones, such as more sophisticated math, but this is well explained in the links below and also implemented in various libraries in python.

执行旋转所围绕的旋转轴可以任意定向,这是一个很大的好处。这在以后会派上用场。

如果您想查看 algorithmic example of it, I suggest you have a look at this post. For the math,维基百科可能会有所帮助。