Java 物理模拟中的尺度维数

Java 物理模拟中的尺度维数,java,applet,scale,physics,game-physics,Java,Applet,Scale,Physics,Game Physics,我需要一些帮助,我正在编写一个java物理模拟。模拟是关于物体的自由下落。我使用的是java,不使用任何第三方库 我有一个小程序(1400px宽,700px高)和一个精灵(椭圆形)掉了下来。重力设置为10 m/s²。我将牛顿第二定律应用于我的椭圆精灵,并使用RK4算法计算精灵随时间变化的x和y坐标 这一切都很好…除了我不知道如何缩放我在模拟中使用的尺寸 例如,我希望1px代表1cm(宽度和高度)。因此,我的1400px*700px小程序的尺寸将实际代表14m*7m。我曾经 Graphics2D.

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

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

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

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

Graphics2D.scale()

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


有人能告诉我一个适当的方法来衡量我的尺寸吗

您有一个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

所以,我们不必担心改变标志

在(245383)处绘制椭圆形


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

每米有100个像素。以米为单位计算x和y位置,然后将x乘以100,y乘以100进行绘图。@GilbertLeBlanc如果我按照你的建议去做,我需要一个14m*7m尺寸的小程序,它不能适应任何屏幕。我错了吗?(或许我就是不明白你的意思)。。。