Math 球面投影角等价

Math 球面投影角等价,math,3d,geometry,projection,Math,3d,Geometry,Projection,假设我们有一个半径为r的球体,距离观测者d 我们定义如下 O: observer C: Center of the sphere P: arbitrary visible point of the sphere (fromthe observer) OC: line connecting the observer to the center of the sphere ( fixed length: d) OP: Line connecting the observer and an arbi

假设我们有一个半径为r的球体,距离观测者d

我们定义如下

O: observer
C: Center of the sphere
P: arbitrary visible point of the sphere (fromthe observer)

OC: line connecting the observer to the center of the sphere ( fixed length: d)
OP: Line connecting the observer and an arbitrary visible point of the sphere (variable length depending on the angle: a)
CP: Line connecting the center of the sphere and this arbitrary visible point (fixed length: r)


theta: angle between OC and OP
shi: angle between OC and CP
如果p是球体的一个“外部”可见点,使用基本几何,我们得到了它

theta_max = atan( r/ sqrt(d^2-r^2) )
shi_max = PI/2 - theta_max
对于任何其他点,我得到了以下方程

r.cos(shi) + a.cos(theta) = d
r.sin(shi) = a.sin(theta)
我认为这些方程是正确的,但我看不出有办法把它们写成shi=f(θ),因为‘a’也随它而变化

可能吗?或者这些步骤有错吗

编辑

使用最新的两个方程,我们可以得到

tan(theta)= r.sin(shi)/(d-r.cos(shi))

但是如果可能的话,我需要得到shi=f(θ)

让我们调用CP和OP
λ之间的角度。求解
λ
相当简单:

sin(λ) = sin(theta)*d/r
现在你知道了三角形中的两个角,剩下的一个角可以通过三角形的角和来计算:

shi = Pi - theta - asin( sin(theta)*d/r )

您希望从两个等式中消除一个变量(
a
),这在这里很容易。为
a
求解一个方程,然后将结果放入另一个方程中。然后
a
消失了,你可以用
shi
来解它。谢谢十五边形,但如果我这样做,我只能得到tan(θ)=r.sin(shi)/(d-r.cos(shi)),它给我θ作为shi的函数,但如果它以封闭形式存在(我不知道),我就无法得到它的倒数shi=f(θ)。编辑文章指向这一点这就是我要找的!谢谢!