Math 如何按比例显示太阳系的行星?

Math 如何按比例显示太阳系的行星?,math,Math,我必须用openGL制作太阳系。问题是,实际的行星距离和大小如此不同,以至于很难画出来。我在想,一定有某种方法可以“压缩”一系列数字,使数字更接近,但它们的相对差异保持不变。举个例子,在刻度的一端,数字会保持原样,在刻度的另一端,所有数字都会收敛到同一个值上。我知道这只是一个缩放的例子,然后加/减一个量,但不确定如何进行。您刚才描述的是一个 但我不确定这是不是最好的选择。一个更好的选择是简单地拥有一个良好的用户界面——用某种视觉指示器(比如,一个空心的绿色圆圈;或者一张放大镜图片)按比例绘制行星

我必须用openGL制作太阳系。问题是,实际的行星距离和大小如此不同,以至于很难画出来。我在想,一定有某种方法可以“压缩”一系列数字,使数字更接近,但它们的相对差异保持不变。举个例子,在刻度的一端,数字会保持原样,在刻度的另一端,所有数字都会收敛到同一个值上。我知道这只是一个缩放的例子,然后加/减一个量,但不确定如何进行。

您刚才描述的是一个

但我不确定这是不是最好的选择。一个更好的选择是简单地拥有一个良好的用户界面——用某种视觉指示器(比如,一个空心的绿色圆圈;或者一张放大镜图片)按比例绘制行星,以确定较小行星的位置。当用户将鼠标悬停在视觉指示器上时,放大该行星,或在单击该行星时放大该行星

或者,给他们使用鼠标滚轮放大的选项

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


作为参考,这是一幅典型的教科书图像,行星不按比例缩放,而按比例缩放的是它们看起来的样子(至少行星不是它们的轨道)。

什么是“困难”?你需要更高的精度还是更大的射程?你用的是什么语言?例如,太阳比冥王星大600倍,所以画出来就意味着整个屏幕都是太阳,如果你使用合适的长度尺度,你将无法看到两颗行星同时可见的深意。此外,如果你只想在2D屏幕上(即在表格中)并排画出所有行星(和太阳),你也不能(合理地)使用它们“直径”的适当比例。我在大学里也有过同样的项目,我想我作弊是因为我用了不同的比例参数来衡量行星的大小和它们之间的距离。对我来说,很难想象如何将它以合适的比例放在电子屏幕上。使用多个视图,其中每个视图都有上一个视图中最大的行星和当前视图中最小的行星。不确定这是否有帮助。