You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从对象3D变换获取旋转角度?求解管滚转角通用方案

问题:直管与套筒的姿态角(滚转/偏航/俯仰)计算

我不确定有没有人问过类似问题,折腾好几天都没解决。我在做一个包含直管和套筒的项目,套筒安装位置没问题,但得和管子对齐朝向,现在主要关注滚转角,同时也想掌握偏航、俯仰角的计算方法。

该管带有变换数据,包含管中心原点及三个基轴XYZ点,测试用例数据如下:

origin:{(119.814557964, -37.330669765, 8.400185257)},
BasisX: {(1.000000000, 0.000000000, 0.000000000)},
BasisY: {(0.000000000, 0.939692621, 0.342020143)},
BasisZ: {(0.000000000, -0.342020143, 0.939692621)}.

我尝试过以下方法,有一定效果:

// 注:我知道这段代码里很多变量没必要这么用,不敢改怕越改越乱
upDownAxis = givenSleeveObject.passedOnTransform.BasisZ;
leftRightAxis = givenSleeveObject.passedOnTransform.BasisX;
tempOfVector = givenSleeveObject.passedOnTransform.OfVector(upDownAxis);//这个OfVector是把变换应用到向量上
rotationAngle = upDownAxis.AngleOnPlaneTo(tempOfVector, leftRightAxis);

这个方法能算出测试管的旋转角度为20度,但沿Y轴计算效果不佳,沿Z轴计算完全错误,推测是旋转后轴方向变化导致的。补充说明:管的走向沿BasisX轴,若仅Z轴为1则表示管朝上。

现需解决:如何在管任意朝向时计算其滚转角?长期来看旋转方向也很重要,既然对象变换数据自身关联,应该存在计算任意姿态下滚转角的方法,对吗?


内容的提问来源于stack exchange,提问作者Chris K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:15:43