2009-12-16 77 views
0

我正在开发一个交互式眼球跟踪器。我想根据鼠标移动旋转2个球体。这些领域代表着眼球。做这件事的最好方法是什么?我需要找到指向鼠标当前位置方向的矢量,但我不知道如何找到用于旋转球的旋转矩阵。 我正在使用silverlight + kit3d,但这是不相关的..它可能是opengl,directx或任何东西.. 谢谢,眼球旋转

回答

1

有一个paper由Möller和Hughes从“图形工具杂志”(Journal of Graphics Tools)称为“有效构建矩阵以将一个矢量旋转到另一个矢量”,这正是您想要的。还有example code可用。

考虑到您的具体问题,您可以简单地从本文提出的确切步骤中简化一些事情。

+0

这正是我所需要的。很好的答案。 – jose 2009-12-21 09:54:27

0

你真的想要实现它或只是使用它。我有一个类似的igoogle小工具。如果你愿意,你可以搜索igoogle。

+0

嘿谢谢,但我更喜欢自己做。无论如何:) – jose 2009-12-16 10:19:35

1

好吧,我想这应该工作

picture at imagebin.ca/img/Bz7zhY.png http://imagebin.ca/img/Bz7zhY.png

30是从屏幕的中心(或眼睛在屏幕上中央的鼠标光标的距离,如果你想让他们独立运动)。

25是眼睛的从屏幕(Z轴)的距离

这是仅对于一个轴(X或Y),则需要待办事项这为每个轴

+0

但是鼠标和模型有不同的坐标系统。 – jose 2009-12-16 17:34:50

+0

不一定,您可以将2D屏幕平面想象为3D世界中的平面,并将尺寸/位置与眼球相关。这样可以节省您另一层数学/变换将屏幕空间转换为世界空间。 – 2009-12-16 20:16:16

+0

@ tm1rbrt - 我认为图像的问题是替代文本中的“http:” – ChrisF 2009-12-19 12:12:50