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

平面点从基准平面映射到指定目标平面的坐标转换方法咨询

平面点坐标转换解决方案

前提约定

  • 统一记球心坐标为O = (o_x, o_y, o_z),球半径为R
  • 灰色基准平面记为$P_1$:法向量n1 = [1, 0, 0],平面一般式为x = d1(d1为已知常数项)
  • 黄色目标平面记为$P_2$:法向量n2 = [a, b, c](可提前做单位化处理),平面一般式为a*x + b*y + c*z = d2(d2为已知常数项)
  • 基准平面上已知点记为P1_p = (x1, y1, z1),满足$P_1$平面方程且在球面上

方案1:基于公共旋转轴的旋转变换(对应同球面、绕轴旋转映射的场景)

两个平面的交线即为你系统的旋转轴,通过旋转变换直接映射坐标:

  1. 转换到球心局部坐标系,消去平移影响:
    P1_local = (x1 - o_x, y1 - o_y, z1 - o_z)
  2. 计算公共旋转轴的单位向量:旋转轴方向同时垂直于两个平面的法向量,通过叉乘得到后做单位化处理
    u = normalize(cross(n1, n2))
  3. 计算两个平面的旋转夹角:通过法向量的点积计算夹角
    θ = arccos(dot(n1, n2) / (|n1| * |n2|))

注:如果旋转方向和右手定则不符,可将θ取负值调整

  1. 用罗德里格斯旋转公式计算旋转后的局部坐标:
    P2_local = P1_local * cosθ + cross(u, P1_local) * sinθ + u * dot(u, P1_local) * (1 - cosθ)
  2. 转换回全局坐标系,得到目标平面上的对应点:
    P2_p = (P2_local.x + o_x, P2_local.y + o_y, P2_local.z + o_z)

方案2:基于射线求交的变换(对应同一条球心射线与两个平面的交点映射场景)

如果你的对应点定义为从球心出发、过基准面点的射线,与目标平面的交点,可直接用射线平面相交公式计算:

  1. 计算射线的方向向量:
    dir = normalize((x1 - o_x, y1 - o_y, z1 - o_z))
  2. 代入目标平面方程求解缩放系数t:
    t = (d2 - a*o_x - b*o_y - c*o_z) / (a*dir.x + b*dir.y + c*dir.z)
  3. 计算目标点坐标:
    P2_p = (o_x + t*dir.x, o_y + t*dir.y, o_z + t*dir.z)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:04