【问题标题】:How to display the planets of the solar system to scale?如何按比例显示太阳系的行星?
【发布时间】:2012-07-04 08:55:03
【问题描述】:

我必须在 openGL 中制作太阳系。问题是实际的行星距离和大小是如此不同,以至于很难画出来。我在想一定有某种方法可以“压缩”一系列数字,以便数字变得更接近,但它们的相对差异保持不变。因此,例如,在天平的一端,数字将保持原样,在天平的另一端,所有数字将收敛到相同的值。我知道这只是缩放然后添加/减去数量但不知道如何继续的情况。

【问题讨论】:

  • 什么是“难”?您需要更高的精度还是需要更大的范围?您使用什么语言?
  • 比如太阳比冥王星大600倍,所以画出来就意味着整个屏幕都被太阳填满了,你就看不到冥王星了
  • 请注意,如果您要使用适当的长度刻度,您不能同时看到两个行星。 (当然。甚至几乎没有。)此外,如果您只想在 2D 屏幕(即在桌子上)上并排绘制所有行星(和太阳),您也不能(合理地)使用它们的“直径”的适当比例。
  • 我在大学有同样的项目,我想我作弊了,因为我使用不同的比例参数来缩放行星的大小和它们之间的距离。对我来说,很难想象如何以合适的比例将它放在屏幕上。
  • Most depictions of planets to scale 使用多个视图,其中每个视图都有前一个视图中最大的行星和当前视图中最小的行星。不确定这是否有帮助。

标签: math


【解决方案1】:

你刚才描述的是logrithmic scale

我不确定这是否是这里的最佳选择。更好的选择是简单地拥有一个良好的用户界面 - 按比例绘制行星,并使用某种视觉指示器(例如,一个空心的绿色圆圈;或放大镜的图片)行星是。当用户将鼠标悬停在视觉指示器上时,放大行星,或在点击行星时放大行星。

或者,让他们选择使用鼠标滚轮放大。

或者,简单地观察一下,确保较小的行星看起来更小,而较大的行星看起来更大,并注意行星不是按比例缩放的。

作为参考,here 是典型的教科书图像,行星没有按比例缩放,而this 是它们按比例缩放的样子(至少是行星,不是它们的轨道)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多