2011-05-24 111 views
3

我遇到了严重的问题,解决了下面图片中显示的问题。 假设我们在3D空间中有3个点(蓝色圆点),以及基于它们的三角形的一些中心(红色圆点 - 点P)。我们也有一个这个三角形的法线,以便我们知道我们在谈论哪个半空间。如何确定半球的点x-y-z坐标?

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

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

如果有人能帮助我,我会成为真的很感谢。

亲切的问候, 单轨

回答

1

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

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

编辑

但对于在(X, Y, Z)坐标为中心轴(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)alpha是相对于L给出的,并且beta是相对于L-M平面给出的。如果你不知道L是如何与三角形的点相关的,那么问题就无法得到解答。

+0

这几乎是我要找的 - 除了蓝色三角形不必平行于XY,XZ和YZ平面。我们只有3点(蓝点)给出。没有什么;-(即http://i.imgur.com/iwrbU.png – emesx 2011-05-24 18:14:49

+0

非常感谢! – emesx 2011-05-25 07:31:01

0

你需要找到两个单位长度正交向量L,M就是说,在该三角形的平面以及所述的单位法线N.在球体上的点是

R * COS(测试版)* cos(alpha)* L + r * cos(beta)* sin(alpha)* M + r * sin(beta)* N