1

キャンバスコンテキスト座標空間を特定のバウンディングボックスを含むように変換し、その周りにテストを書いているとします。html5 canvas要素の変換を再利用できますか?

function toBoundingBox(context, upleft, botright) { 
    // ... 
} 

// and the test function: 
function test(canvaselement) { 

    var canvasbox = { 
     topleft: {x:0, y:0}, 
     botright: {x:canvaselement.width, y:canvaselement.height} }; 

    var ctx = canvaselement.getContext("2d"); 
    toBoundingBox(ctx, {x:-1,y:-1}, {x:2, y: -5}); 

    var thetransform = ctx.getTransform(); 
    assert(thetransform({x:-1,y:-1}) == canvasbox.topleft); 
    assert(thetransform({x:2, y:-5}) == canvasbox.botright); 

} 

それとも、このテスト関数を記述する他の方法があります:

それは多少このように、実際には「使用」コンテキストの変換をすることは可能でしょうか?

答えて

2

悲しいことに、変換にアクセスするネイティブな方法はありません。これを自分で実装する必要があります。詳細については、HTML5 Canvas get transform matrix?を参照してください。うまくいけば、これは役立ちます!

+0

あなたは正しいですが... http://stackoverflow.com/a/7395910/6610、edit 2:whatwg仕様に 'currentTransformation()'が追加されました。 (cf. http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Mar/0269.html) – xtofl

+0

ええ、彼らはそれを仕様に加えたことは素晴らしいことです!それは新しいブラウザのためです。しかし、それはあなたの目標に応じてうまくいくかもしれません。 :) –

関連する問題