4

给定相机朝向的方向的 3D 向量和 3D 空间中 3D 对象的方向/方向向量,我如何计算鼠标指针在屏幕上必须遵循的 2 维斜率才能在视觉上是沿着所述物体的方向移动?

基本上,我希望能够单击箭头并通过拖动它使其前后移动,但前提是鼠标指针(大致)沿着箭头的长度拖动,即在它指向的方向上。

谢谢你

4

2 回答 2

1

我不确定我 100% 理解你的问题。你介意张贴一张图表吗?

你可能会发现这些很有趣。我回答了之前的问题,以计算给定相机方向(查看)矢量的局部 XYZ 轴,以及在平行于相机的平面中平移物体的问题。

这两个示例都使用向量点积向量叉积来计算所需的向量。在您的示例中,一旦找到它们,向量点积也可用于输出两个向量之间的角度。

于 2012-01-27T09:28:18.660 回答
0

这在一定程度上取决于您用于将 3d 真实世界坐标转换为 2d 屏幕坐标的转换,例如透视、等距等...您通常会有向前 (3d -> 2d) 和向后 (2d - > 3d) 游戏中的变换,其中反向变换丢失信息。(即前进每个 3d 点将映射到一个唯一的 2d 点,但从该点返回可能不会产生相同的 3d 点)。您通常可以将鼠标点投影到对象上以获取缺失的尺寸。

对于鼠标拖动,您通常让用户指定一个操作(在投影平面上平移、放大或缩小,或围绕锚点旋转)。您的输入是拖动开始和结束时的鼠标坐标,您将其转换为 3d 坐标系以获得两个 3d 坐标,这将为您提供 dx、dy、dz 用于拖动/平移等...

于 2012-01-27T10:31:38.757 回答