首页 > 解决方案 > 平面切割球体

问题描述

我有几何问题。假设半径=1的半球以球坐标表示

     x = sin(theta)cos(phi)
     y = sin(theta)sin(phi)
     z = cos(theta)

     0<phi<360° and 0<theta<90

换句话说,球体只有 z>0。

然后考虑一个相对于 z 轴倾斜并经过 x 轴的平面。

如何获得球面与平面的 theta 和 phi 交点的值?

我能够获得飞机的表达方式

     ax + by + cz + d = 0    (d=0)

但是使用球体的 x、y 和 z 的表达式,我没有找到任何解决方案。

你可以帮帮我吗?谢谢你

标签: coordinates

解决方案


为了完整起见,我添加了找到的解决方案。考虑 0° e 180° 之间的角度 phi(其他角度产生 z 为负值的解)并且说 phi0 这些角度之一。

将平面方程中的球面坐标的表达式替换为我们有:

a sin(theta) cos(phi0) + b sin(Theta) sin(phi0) + C cos(theta) = 0

然后

A = a cos(phi0);  B = b sin(phi0)

将此表达式除以 cos(theta):

A tan(theta) + B tan(theta) + c = 0

解决方案是:

theta = atan2(-c, A+B)

atan2 直接产生正确的值。


推荐阅读