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

3
我遇到了一个严重的问题,需要解决下面图片中所示的问题。假设我们在三维空间中有3个点(蓝色点),以及基于它们的三角形某个中心点(红色点P)。我们还有一个法线,以便我们知道我们正在谈论哪个半空间。
我需要确定一个点的位置(红色???点),该位置取决于两个角度,都在0-180度范围内。不管alfa=0和betha=0角度如何"锚定",只要能够扫描整个半球体(半径为r)即可。

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

如果有人能帮助我,我会非常感激。

敬礼, Rav

2个回答

1

从图纸上看,球面上点的位置似乎由一种球坐标形式给出。设r为球的半径;设与x轴夹角为alpha;与x-y平面夹角为beta。点在球面上的笛卡尔坐标是:

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

编辑

但对于以坐标轴(L, M, N)为中心的一般坐标系,其坐标如下(与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)。给定相对于 Lalpha,并且给定相对于 L-M 平面的 beta。如果您不知道如何将 L 与三角形的点相关联,则无法回答该问题。


这几乎是我要找的东西 - 除了蓝色三角形不必平行于XY、XZ或YZ平面。我们只有3个点(蓝色点)给定。没有更多的了;-(即http://i.imgur.com/iwrbU.png - emesx

0

你需要在三角形所在平面中找到两个单位长度的正交向量L和M,以及单位法向量N。球面上的点为:

r*cos(beta)*cos(alpha) * L + r*cos(beta)*sin(alpha)*M + r*sin(beta)*N


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接