タイトル : Re^6: 渦巻き回りの座標移動アルゴリズム 投稿日 : 2010/10/01(Fri) 19:01 投稿者 : 琴
> もし、もっと良い方法があれば後学のために、教えてください。 もっと良い方法かは判りませんが、 移動済みか否かを判別せずに移動するロジックを考えてみました。 '---------------------------------------- mCount = 21 '移動回数 iMovement = 0 '移動方向 For I = 1 To mCount Select Case iMovement Case 0 '右:X+ X = 1 Y = 0 Case 1 '下:Y- X = 0 Y = -1 Case 2 '左:X- X = -1 Y = 0 Case 3 '上:Y+ X = 0 Y = 1 End Select For J = 1 To Int((I / 2) + 0.5) Move(X, Y) Next J iMovement = (iMovement + 1) Mod 4 '方向転換 Next I '---------------------------------------- 変数 mCount は次の曲がり角までの直進を 1 とする移動回数です。 事前に調査して設定、または算出して入れておく必要があります。 変数 X および Y は各座標軸に対する増減です。 移動する方向に合わせて+-を設定します。 現在地から次の曲がり角までの移動量(1,1,2,2,3,3…)を算出し、1マスずつ移動します。 |