Javaのグラフィックスを初めて使用する場合は、このチュートリアルをお勧めします。あなたがしていることをコーディングするとしたら、2つの選択肢があります。
まず、最も簡単な方法として、「最初に直進し、次に、私が向きを変えている角を中心とする円のエッジに沿って90度回転し、次に再び直進する」とモデル化できます。JPanel
これを行う最も簡単な方法は、あなたを描くaを定義することですImage
(はい、JPanel。背景をペイントしない場合は、JPanelを互いに重ねることができます。正しい順序でペイントされます。背景JPanel
を不透明にして、次のフレームを描画する前にクリーンアップします)、AffineTransform
希望の位置に画像が表示されるようにします。速度が一定に見えるように、変換の増分を調整する必要があります。試行錯誤、または少しのジオメトリ(半径Rの90ºはR*pi/2.0
湾曲したパスに沿った総移動を意味します)は、そこに役立つでしょう。
難しい方法は、車のルートを任意の形状(たとえば、ベジェ曲線を使用して定義できます)と見なし、PathIterator
そこから平坦化されたものを抽出し、そのイテレーターに沿って等間隔のジャンプを進め、必要な回転を計算することです。カーブに沿った位置と任意のポイントでの方向(2つの連続するサンプルを取得し、これらのサンプルに従って車を位置合わせすることで、方向を推定できます)。これは、上記の方法を使用するよりも困難ですが、車が任意の複雑な経路をたどることができます。