You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于距离与角度计算笛卡尔坐标(3D俯视忽略Y轴)

确认极坐标转X-Z平面笛卡尔坐标的方法正确性

没问题,这个计算方法是完全正确的,不过有几个关键细节需要明确,避免踩坑:

核心原理

俯视视角忽略Y轴后,问题就简化成二维极坐标转笛卡尔坐标的经典问题——原点(0,0),距离d是极坐标的半径,角度a是极角,对应到X-Z平面的投影坐标。

正确公式(分两种角度定义)

情况1:角度以X轴正方向为0度,逆时针旋转(数学标准定义)

这时候坐标计算用:

  • X坐标:x = d * cos( radians(a) )
  • Z坐标:z = d * sin( radians(a) )

情况2:角度以Z轴正方向为0度,顺时针/逆时针旋转(游戏场景常用)

如果你的场景里0度是朝前(比如Z轴正方向),那公式要调整(以逆时针旋转为例):

  • X坐标:x = d * sin( radians(a) )
  • Z坐标:z = d * cos( radians(a) )

重要提醒:几乎所有编程语言的三角函数(比如Python的math.cos、C++的std::cos)都是基于弧度计算的,所以必须先把角度a转换成弧度(公式:弧度 = 角度 × π / 180),否则结果会完全错误!

示例验证

比如距离d=10米,角度a=30度(按情况1的角度定义):

  • x = 10 × cos(30°) ≈ 8.66米
  • z = 10 × sin(30°) = 5米
    把这个点在X-Z平面上画出来,距离原点的距离正好是10米,角度也符合预期,完全正确。

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

火山引擎 最新活动