coordinates - 平面切割球体
问题描述
我有几何问题。假设半径=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 的表达式,我没有找到任何解决方案。
你可以帮帮我吗?谢谢你
解决方案
为了完整起见,我添加了找到的解决方案。考虑 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 直接产生正确的值。
推荐阅读
- javascript - Javascript 对象之间的通知
- nginx - 如何配置 NGINX 反向代理并加密证书
- c - 如何创建用于 mmap 文件操作的 filep(Linux 内核驱动程序)?
- openfaas - 无法向 openfaas 提交异步任务
- css - 如何在我的 react 项目中使用 react-table 中的 css 文件以及 css 模块?
- c# - Autofac - 单例接口解析为瞬态
- node.js - 全球猫鼬模型
- sql - 如何在 Windows 上的 PostgreSQL 中使用 UTF-8 排序规则创建数据库?
- reactjs - 是否可以在图像加载之前显示首字母?
- wolfram-mathematica - 带根参数的 Mathematica 区域