タイトル通り、反発係数を考慮した物体の自由落下運動の実験をしています。
その一部です。
Java
1 public void run() { 2 3 while (true) { 4 5 6 //水平方向 7 x += vx; 8 9 if(x >= WIDTH || x < 0) { 10 vx -= 1; 11 } 12 13 //鉛直方向 14 15 16 if (Vec == false && time < Math.sqrt(2 * Y0 / G)) { 17 //Vecは物体が自由落下から鉛直投げ上げに移行する際にtrueになります。 18 19 y = Y0 - 0.5 * G * time * time; 20 21 if(y < 0.000) { 22 y = 0; 23 } 24 25 } else if (time >= Math.sqrt(2 * Y0 / G) || Vec == true) { 26 27 y = E * Math.sqrt(2 * G * Y0) * time - 0.5 * G * time * time; 28 29 30 if(y < 0) { 31 y = 0; 32 } 33 34 if (Vec == false) { 35 Vec = true; 36 } 37 } 38 39 if (y <= 0.000 && Vec == true) { 40 time = 0; 41 exe_deci = true; 42 //実行を何回もさせないようにするためのフラグ?です。 43 } 44 45 if(y >= E * E * Y0 -1.00 && exe_deci == true) { 46 //E *= E; 47 exe_deci = false; 48 } 49 50 51 time += 0.1; 52 53 54 55 System.out.println(y); 56 //座標を出力してグラフ化して試行錯誤してます(^^;) 57 58 repaint(); 59 60 try { 61 62 Thread.sleep(20); 63 64 } catch (InterruptedException e) { 65 66 e.printStackTrace(); 67 68 } 69 70 } 71 72 }
理想はこんな感じなのですが、なかなかうまくいきません...
何かアドバイス等をいただけると幸いです。(^^;)
回答1件
あなたの回答
tips
プレビュー