2017-11-01 7 views
0

Javaの変数の変化率(増加または減少)を取得しようとしています。Javaで変数の増加率をチェックする方法は?

例えば、重力とマウスボタンが押されている時間に応じて、オブジェクトの速度を変更する処理プログラムがあります。

私は過去5秒間の速度変数の変化率を求めたいと思います。 次に、減少が遅すぎるかどうかを確認します。

低すぎると、重力が増加してより速く落ちます。 それ以外の場合は、速度を下げるために重力も増加するはずです。

どのようにオブジェクトの位置を確認できますか?

+0

素敵な宿題! – mrid

+0

あなたが疑問に思っている場合には、これは微分(微積分の話題)として知られています。 – byxor

答えて

2

スタックオーバーフローは実際には一般的な「どのようにこれを行うのですか」タイプの質問には対応していません。それは具体的なものです。「私はXを試しましたが、Yは期待されましたが、代わりにZを得ました。しかし、私は一般的な意味で助けようとします。

このための魔法のすぐれたソリューションはありません。

コンピュータなしで、紙と鉛筆だけでこれをどうやって行いますか?変数の変化率を把握するための指示を英語で書き留めてください。

解決策の1つは、最後のX値を配列またはArrayListに追加し、それを使用して変更量を計算することです。あるいは、Xフレーム前の値を保存し、それを現在の値と比較するだけでもかまいません。

重要なことは、これを行う方法が1つだけではないことです。

0

マウスの押下とマウスのリリースの両方でjava.awt.event.MouseEventがトリガーされます。 MouseEventはInputEventを拡張するので、getWhen()メソッドはシステム時間をミリ秒で返します。さらにMouseEventにはマウスの位置を取得するメソッドがあります。したがって、マウスが押された時間とマウスが離した時間を覚えているマウスリスナーを登録すると、マウスが押された時間がわかります。マウスのリスナーがカウンターを開始および停止しているか、そのカウント速度が重力変数に依存しているか、経過時間中に何回カウントしたかを簡単に取得できます。

+0

[tag:processing]タグに注目してください。疑問は純粋なJavaやSwingではありません。処理には独自の入力機能があり、AWTやSwingは使用しないでください。 –

+0

@KevinWorkmanあなたは正しいですが、マウスボタンへの参照とポインタ位置への参照であるjavaタグは、私にウィンドウツールキットを思い出させます。私がjavaで知っている唯一のものはAWTなのでSwingです。他の実装は、ホイールを再発明するようなものです。 – ugo

+0

加工は何ですか?処理は、背後でSwingとAWTを使用します。しかし、処理の上にSwingとAWTを使用すべきではありません。 –

関連する問題