给定相机面向的三维向量和三维空间中一个物体的方向/定向向量,如何计算鼠标指针在屏幕上必须沿着二维斜率移动,以便在视觉上沿着所述物体的方向移动?
基本上,我想能够单击箭头并通过拖动使其来回移动,但仅当鼠标指针(大致)沿着箭头的长度移动,即沿着它指向的方向移动。
谢谢
基本上,我想能够单击箭头并通过拖动使其来回移动,但仅当鼠标指针(大致)沿着箭头的长度移动,即沿着它指向的方向移动。
谢谢
我不确定我完全理解你的问题。你介意发一张图吗?
你可能会对这些感兴趣。我曾回答过之前的问题,给定相机方向(look at)向量计算本地 X Y Z 坐标轴,以及一个关于平行于相机移动物体的问题。
这两个例子都使用了向量点积,向量叉积来计算所需的向量。在你的例子中,向量点积也可以用来输出两个向量之间的角度,一旦你找到它们。
这在一定程度上取决于您使用的转换方式,将3D真实世界坐标转换为2D屏幕坐标,例如透视、等轴测等。通常情况下,您会有一个前向(3D->2D)和后向(2D->3D)的转换,其中后向转换会丢失信息。(即,前向时每个3D点将映射到唯一的2D点,但从该点返回可能不会产生相同的3D点)。您可以经常将鼠标点投影到对象上以获取缺失的维度。
对于鼠标拖动,通常需要用户指定操作(在投影平面上平移、放大或缩小,或围绕锚点旋转)。您的输入是拖动开始和结束时的鼠标坐标,您将其转换为您的3D坐标系统以获取两个3D坐标,这将为您提供拖动/平移等的dx、dy、dz。