2010-03-04 80 views
3

我需要允许用户平移,旋转,放大/缩小使用平行投影的3D场景。平移和放大/缩小非常简单。但是,当使用鼠标进行旋转时,我不确定要使用什么作为旋转中心。特别是,我不确定屏幕内部的旋转中心应该落在什么深度。旋转3D模型:旋转中心的建议

以下是我现在正在做的事情:以模型的质心为中心并将其用作旋转中心。但是,质心有时会落在可见区域之外(作为平移和缩放级别的结果),并且用户(和我自己)发现将模型围绕我们看不见的点旋转模型是违反直觉的。

在这种情况下,什么被认为是用户交互的标准?这里最直观的行为是什么?

PS:我只有一个视口(不像Blender和朋友)。

编辑:这将是巨大的,如果有经验的各方能够评估软件包,如谷歌SketchUp和Blender 3D目前的做法,并张贴他们的意见。

回答

3

您可以尝试从相机朝向屏幕中心投射光线,找到最近和最远的交点,然后在交点中点设置旋转点。

1

我在这里看到了一些解决方案,我最喜欢的是允许用户设置(并用鼠标拖动)旋转中心。然后,您抓住模型上的一个点并拖动以围绕此中心旋转。较差但可行的是将视口的中心投影到模型坐标中。

+0

我更喜欢第一种方法,但我的用户是非技术人员,可能不理解它。我一直在看Google的Sketchup。他们的轨道工具看起来像我在找的东西。 – 2010-03-04 10:36:04

0

我不确定他们是否更喜欢这个......但是尽量让旋转旋转相机,让它像第一人称射击游戏中的那样。这可能不适合鼠标旋转的想法,但它是最常用的一种,在用户使用几秒钟内应该是直观的。