我对 Open Inventor(Coin3D) 很陌生,并且遇到以下问题:
我有一个 SoSelection 持有一个根节点(也是 SoSeparator)。并且根节点拥有多个 SoSeparator 节点。这些 SoSeparator 节点中的每一个都包含一个 SoTransform 节点和一个 SoCube 节点。
当我选择一个立方体节点时,我希望到所选立方体一定距离内的所有其他立方体围绕所选立方体排列成一个圆圈。(此外,所有立方体都应该在一个平面上)附加信息:我的立方体总是以相机方向定向(cubeTransform_->rotation.connectFrom(&camera_->orientation)
假设选定的立方体是圆的中心,我如何在平面上的一个圆圈中平移其他立方体(垂直于所选立方体和相机之间的矢量)?特别是我如何在平面上找到与轴有一定距离的圆的坐标(从中心立方体到相机)。
我已经做的是在选择一个立方体后立即搜索一定距离内的所有立方体。结果,我已经在 SoPathList 中拥有了所需的分隔符(其中包含相应的 SoTransforms 和 SoCubes)。现在我想通过修改相应的 SoTransform->translation 值来排列立方体。
问候马克