2017-11-15 31 views
1

私は物理的な物体の映画の方程式をシミュレートしようとしていますので、加速度に応じて10ミリ秒ごとにベロシティを変えたいと思います。(int delay = 10)Java PointクラスgetX()またはgetY()は自動的にキャストされますか?

public static void main(String[] args) { 
    Point velocity = new Point(); 
    Point acceleration = new Point(20.0, 0); 
    velocity.setLocation(10, 19); 

    w‌​hile (true) { 
     velocity.setLocation(velocity.getX() + 
      acceleration.getX() * 10/1000.0, 19); 
     System.out.println(velocity.getX()); 
    } 
} 

はこの線は速度のxまたはyを変化させない(及び加速度のxは20であり、Yが40.0であるのです。場合、その範囲は、私はそれがない疑う差せる)ことが珍しい。 I加速度を印刷.getX()* delay/1000.0それは0.0を出力します。その量をacceler.getX()に置き換えて印刷しようとすると、実際の金額が表示されます。

誰でもこのコードが間違っていることを知っていますか?
getX()は自動的にキャストされますか?

+0

あなたは検証可能な例を提供できますか? – Gendarme

+0

いいえ、質問に[mcve]を入力してください。何かを実行することができます。 –

+2

"' acceleration.getX()* delay/1000.0'を印刷すると '0.0'"が出力されますので、これを複製できないので詳細を記入してください。しかし、 'accelerate.getX()'が '40'と' delay = 10'を返すなら 'accelerate.getX()* delay/1000.0'は' 0.2 'である。 'Point.setLocation(double、double)'を使用して割り当てられた場合、これは '0'にフロアされます。 –

答えて

0

あなたはint型として格納されている

Point Documentation

ポイントを定義する値で見ることができるように、二重保存したい場合はそうである0.0と1.0の間(あなたの例の場合のように)それは0にキャストされます。