【问题标题】:Sphere projection angles equivalence球体投影角等效
【发布时间】:2014-06-16 10:06:31
【问题描述】:

假设我们在距离观察者 d 处有一个半径为 r 的球体

我们定义如下

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(theta),因为 'a' 也会随之变化。

有可能吗?还是这些步骤有误?

编辑

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

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

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

【问题讨论】:

  • 您想从两个方程中消除一个变量 (a),这在这里很容易。你为a 求解一个方程,然后将结果放入另一个方程。然后a没了,你可以为shi解决。
  • 感谢 pentadecagon,但如果我这样做,我只能得到 tan(theta)=r.sin(shi)/(d-r.cos(shi)),这给了我作为 shi 函数的 theta ,但如果它以封闭形式存在(我不知道),我无法得到它的倒数 shi = f(theta)。编辑帖子以指出这一点

标签: math 3d geometry projection


【解决方案1】:

我们将CP和OP之间的角度称为λ。求解λ 相当简单:

sin(λ) = sin(theta)*d/r

现在您知道该三角形内有两个角,剩下的一个可以从三角形的角和中计算出来:

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

【讨论】:

  • 这就是我想要的!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2011-04-12
  • 2011-04-10
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 2017-09-30
  • 1970-01-01
  • 2015-07-27
相关资源
最近更新 更多