2016-02-28 99 views
0

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

如果我想将对象指向另一组坐标,我也能做到这一点吗?

+2

你想旋转它什么?箭头的尖端,尾巴的尾部,中间的某个地方?代码中的箭头如何表示? –

+0

箭头是一个图像,我想旋转它的中心。我已经更新了这个问题。 –

回答

1

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

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

Euler Angles from Wolfram Mathworld

使用quaternions,可以产品总数避免了这个问题。尽管它引入了一些新的数学,如更复杂的数学,但是这在下面的链接中得到了很好的解释,并且在various libraries in python中也得到了实施。

旋转所围绕的旋转轴可以任意定向,这是一个很大的好处。这在以后很方便。

如果您想查看它的algorithmic example,我建议你看看this的帖子。对于math,维基百科可能会有所帮助。

+0

我想旋转2D表面,所以我不确定这是否会起作用,我也不明白,所以请你解释一下。 –

+0

不知道应用程序的细节,它将适用于* planar *表面,而该表面又是2D。您只需使用曲面法向量作为旋转轴的旋转轴。这只是假设你选择四元数方法。 –