2

私は Open Inventor(Coin3D) を初めて使用し、次の問題を抱えています。

ルートノード(SoSeparatorも)を保持するSoSelectionがあります。また、ルート ノードには多数の SoSeparator ノードが保持されます。これらの SoSeparator ノードはそれぞれ、SoTransform ノードと SoCube ノードを保持します。

キューブ ノードを 1 つ選択すると、選択したキューブから特定の距離内にある他のすべてのキューブを、選択したキューブの周りに円形に配置する必要があります。(さらに、すべての立方体は平面上にある必要があります) 追加情報: 私の立方体は常に (cubeTransform_->rotation.connectFrom(&camera_->orientation) でカメラ方向に向けられます

選択した立方体が円の中心であると仮定すると、他の立方体を平面 (選択した立方体とカメラの間のベクトルに垂直) 上の円に移動するにはどうすればよいですか? 特に、軸から一定の距離 (中央の立方体からカメラまで) にある円が存在する平面上の座標を見つけるにはどうすればよいですか。

私がすでに行ったことは、1 つの立方体が選択されるとすぐに、特定の距離内にあるすべての立方体を検索することです。その結果、必要なセパレーター (対応する SoTransforms と SoCubes を保持している) が SoPathList に既に含まれています。ここで、SoTransform->translation の値を変更してキューブを配置したいと思います。

よろしくマーク

4

0 に答える 0