computational-geometry - 如何确定半球的点x-y-z坐标?

标签 computational-geometry linear-algebra

我在解决下图所示的问题时遇到了严重问题。
假设我们在3D空间中有3个点(蓝色点),并基于这些点有一个三角形的中心(红色点-点P)。我们还有这个三角形的法线,因此我们知道我们在谈论哪个半空间。

我需要确定一个点(红色???点)上取决于两个角度(都在0-180度范围内)的位置是什么。无论如何“固定” alfa = 0和betha = 0的角度,能够扫描整个半球(半径为r)仅是重要的。

http://i.stack.imgur.com/a1h1B.png

如果有人可以帮助我,我将非常感激。

亲切的问候,
拉夫

最佳答案

从图中看起来,该点在球体上的位置似乎由spherical coordinates形式给出。令r为球体的半径;让alpha相对于x轴给出;并将beta设为相对于x-y平面的角度。球上点的笛卡尔坐标为:

x = r * cos(beta) * cos(alpha)
y = r * cos(beta) * sin(alpha)
z = r * sin(beta)

编辑

但是,对于以(L, M, N)为轴,以(X, Y, Z)为中心的轴的一般坐标系而言,坐标是(如dmuir的回答):
(x, y, z) = 
   (X, Y, Z) 
   + r * cos(beta) * cos(alpha) * L 
   + r * cos(beta) * sin(alpha) * M 
   + r * sin(beta) * N

LN必须正交且M = cross(N, L)。相对于alpha给出了L,并且相对于beta-L平面给出了M。如果您不知道L与三角形的点之间的关系,则无法回答该问题。

关于computational-geometry - 如何确定半球的点x-y-z坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6111437/

相关文章:

java - 如何判断一个点是否在多边形上?

algorithm - 使用高斯消除在 GF(2) 中查找矩阵的秩

有限素数域中代数的 C 代码片段

Matlab矩阵乘法计算有效数字

algorithm - 矩形边界内的高效点搜索

c++ - 使用 assimp 加载网格,并检测其中的边界和非流形边

c++ - 找到一组点的中心以顺时针排序?

algorithm - 检查多边形是否对称

matlab - 如何在图像上应用 SVD 后检查图像是否被压缩(关于磁盘上压缩图像的大小)

arrays - 正向替换打包数组