首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用水平和垂直角度及坡度计算三维点坐标

利用水平和垂直角度及坡度计算三维点坐标
EN

Stack Overflow用户
提问于 2015-06-03 12:18:58
回答 1查看 10.3K关注 0票数 4

我试图学习如何使用原点的XYZ坐标、水平和垂直角度以及3d距离来计算点的XYZ坐标。我可以简单地将点投影到2D平面上来进行计算,但是在3D中有更简单的方法吗?

我试图了解测量全站仪如何根据测量的位置、测量到新点的三维(斜率)距离以及观测到新点位置的水平和垂直角度来计算新的点位置。

谢谢,

E

EN

回答 1

Stack Overflow用户

发布于 2015-06-03 17:33:32

请注意:二维极坐标经常使用(radius, theta),其中theta是“水平”或“方位角”。它的范围从:theta=0,X轴上的2D点(x,y) = (radius,0),到XY平面上的:theta=2*PI,随着theta的增加,这是一个逆时针方向。现在为了混淆事情..。

三维球面坐标 (维护一个右手坐标系)通常使用坐标:(radius, theta, phi)。在这种情况下,theta用于表示从theta=0 (Z轴)到theta=PI ( -Z轴)的“垂直”或“天顶”角度。方位角采用phi

其他文本将使用不同的约定--但这似乎受到物理学家和(一些)数学教科书的青睐。重要的是,你选择一个惯例,并始终如一地使用它。

如下:

radius:距离点。给定笛卡尔坐标下的点(x,y,z),我们有(毕达哥拉斯)半径:r = sqrt(x * x + y * y + z * z),例如,r = sqrt(x * x + y * y + z * z)

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

Pseudo-code: (标准数学库三角函数)

(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

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30619901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档