我在解决下图所示的问题时遇到了严重问题。
假设我们在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
轴
L
和N
必须正交且M = cross(N, L)
。相对于alpha
给出了L
,并且相对于beta
-L
平面给出了M
。如果您不知道L
与三角形的点之间的关系,则无法回答该问题。
关于computational-geometry - 如何确定半球的点x-y-z坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6111437/