Fis*_*her 3 3d trigonometry coordinates
我试图学习如何使用原点的XYZ坐标,水平和垂直角度以及3d距离来计算点的XYZ坐标.我可以简单地通过将点投影到2D平面上来进行计算,但是在3D中有更简单的方法吗?
我试图了解测量全站仪如何基于测量位置,测量到新点的3d(坡度)距离以及测量到新点位置的测量水平和垂直角度来计算新点位置.
谢谢,
Ë
只是关于约定的注释:2D极坐标经常使用(radius, theta),其中theta是"水平"或"方位角".其范围从:X轴上theta=0的2D点(x,y) = (radius,0)到theta=2*PIXY平面上的逆时针方向theta增加.现在混淆事情......
3D球面坐标(维持右手坐标系)通常使用坐标:(radius, theta, phi).在这种情况下,theta用于"垂直"或"天顶"角度,范围从theta=0(Z轴)到theta=PI(-Z轴).phi用于方位角.
其他文本将使用不同的惯例 - 但这似乎受到物理学家和(某些)数学文本的青睐.重要的是你选择一个约定并一直使用它.
按照此:
radius:距离点.给定(x,y,z)笛卡尔坐标中的一个点,我们有(毕达哥拉斯)半径:r = sqrt(x * x + y * y + z * z)例如,0 <= radius < +infinity
theta:天顶角,theta=0直接位于(+ Z轴)上方,theta=PI直接位于(-Z轴)下方,theta=PI/2您可以将其视为0度的"高程",例如:
0 <= theta <= PI
phi:方位角,其中phi=0是'右'(+ X轴),当你转'逆时针',phi=PI/2(+ Y轴),phi=PI( - X轴),phi=3*PI/2( - Y轴)和phi=2*PI-相当于phi=0(回到+ X轴).例如,0 <= phi < 2*PI
伪代码:(标准数学库三角函数)
从(radius, theta, phi)你可以找到点(x,y,z):
x = radius * sin(theta) * cos(phi);
y = radius * sin(theta) * sin(phi);
z = radius * cos(theta);
相反,你可以找到一个(radius, theta, phi) 来自 (x,y,z):
radius = sqrt(x * x + y * y + z * z);
theta = acos(z / radius);
phi = atan2(y, x);
注意:atan2在最终的等式中使用很重要,不是 atan!