在物理模拟中缩放尺寸

时间:2013-01-24 18:11:55

标签: java applet scale physics game-physics

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

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

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

例如,我想1px代表1cm(宽度和高度)。因此,我的1400px * 700px小程序尺寸将实际代表1400万* 7米。我用了

  

Graphics2D.scale()

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

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

1 个答案:

答案 0 :(得分: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位置并重复。

相关问题