2011-07-29 13 views
0

私はHTML5キャンバスでアイソメトリックを作成しようとしていますが、HTML5キャンバススクリーン座標を等角座標に変換する方法はわかりません。 私のコードは現在:HTML5 Canvas ScreenToIso

 

    var mouseX = 0; 
    var mouseY = 0; 
    function mouseCheck(event) { 
     mouseX = event.pageX; 
     mouseY = event.pageY; 
    } 

Canvasの座標を取得します。しかし、この座標を等値座標に変換する方法は?もし私が16x16のタイルを使うようなものなら。

皆様お返事ありがとうございます。この質問の返信と私の英語のために申し訳ありません。

答えて

0

あなたはアイソメトリックに標準COORDSを翻訳したい場合 - あなたはそう、このような式(COS(30)= 0.866 &罪(30)= 0.5が等角図30度を使用するための要因である)

xi = (y + x) * 0.866; 
yi = (y - x) * 0.5; 

を使用する必要があります翻訳をやり直したい場合は、式を見つけることができます:

y = yi + xi/(0.866 * 2); 
x = y - 2 * yi; 

EG私たちは、COORDS [3, 1]を持っているとアイソメトリックCOORDSを見つけたいので、それは容易である:

例えばユーザーが[5.2, 1]でクリックされた[-1、3.464]

xi = (1 + 3) * 0.866 = 3.464; 
yi = (1 - 3) * 0.5 = -1; 

ので、このセルのビューcoordsのです。 LibCanvas経由

y = 1 + 5.2/1.732 = 4; 
x = 4 - 2 * 1 = 2; 

ので、クリックした売りがある[4, 2]

例:これは、新しい値をカウントすること容易であるhttp://libcanvas.github.com/games/isometric/