0

我需要一些关于我正在编写的 java 中的物理模拟的帮助。模拟是关于身体的自由落体。我正在使用 java,我不使用任何第三方库。

我有一个小程序(1400 像素宽,700 像素高)和一个精灵(椭圆形)掉下来。重力设置为 10 m/s²。我将第二个牛顿定律应用于我的椭圆形精灵,并使用 RK4 算法来计算我的精灵随时间的 x 和 y 坐标。

这一切都很好......除了我不知道如何缩放我在模拟中使用的尺寸。

例如,我希望 1px 代表 1cm(宽度和高度)。这样我的 1400px*700px 小程序尺寸将实际代表 14m*7m。我用了

Graphics2D.scale()

方法,但它似乎不起作用。我也想过改变重力,但这似乎不适合我......

有人可以告诉我缩放尺寸的正确方法吗?

4

1 回答 1

0

您有一个 1400 x 700 像素的小程序绘图区域。

你有一个 14 x 7 米的物理区域。

为了从米缩放到像素,您必须使用缩放因子。

1400 pixels / 14 meters = 100 pixels per meter.
700 pixels / 7 meters = 100 pixels per meter.

到目前为止,一切都很好。如果你有两个不同的比例因子,你的绘图区域会被扭曲。

假设椭圆从 (0, 0) 开始。

所以我们计算椭圆的第一个位置。假设第一个计算的位置是

x = 2.45
y = 3.83

因此,使用我们提出的比例因子:

pixel x = 2.45 meters x 100 pixels per meter = 245 pixels.
pixel y = 3.83 meters x 100 pixels per meter = 383 pixels.

我们的物理区域向右增加 x 并向下增加 y。幸运的是,我们的绘图区域向右增加了 x 并向下增加了 y。

所以,我们不必担心标志的变化。

在 (245, 383) 处绘制椭圆。

计算下一个 x、y 位置并重复。

于 2013-01-24T19:25:14.907 回答