在osgSim :: DOFTransform中获取旋转轴?

时间:2014-06-18 10:01:32

标签: c++ openscenegraph

我正在研究一个包含多个DOFTransform节点的OSG模型。为了在3D模型上执行几何计算,我需要知道哪个是旋转轴和放置该轴的点,这可能吗?

1 个答案:

答案 0 :(得分:1)

osgSim :: DOFTransform http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00215.html

具有

const osg::Vec3& osgSim::DOFTransform::getCurrentHPR() const;

获得** H ** eading的欧拉角,** P **痒和** R ** oll,以及

MultOrder osgSim::DOFTransform::getHPRMultOrder() const;

获得旨在用于旋转序列的约定。

参考点可以通过

确定
const osg::Vec3& osgSim::DOFTransform::getCurrentTranslate () const;

如果以 t 所指的框架坐标表示的向量 v ,则

v' = v - t

要进行旋转。


用于将欧拉角转换为轴/角度表示pls。参加:

https://en.wikipedia.org/wiki/Rotation_formalisms_in_three_dimensions#Conversion_formulae_between_formalisms

另外:

M 为组合旋转矩阵,例如

M = H * P * R

(H,P,R这里表示给定角度的各个矩阵)和向量 v' v'&#39 ;

v' = M * v'

不共线,搜索的轴只是它们的标准化交叉积,并且可以通过应用基本三角函数找到角度。