我可以重用html5 canvas元素的转换吗?

时间:2011-07-22 11:54:30

标签: javascript unit-testing html5 html5-canvas coordinate-transformation

想象一下,我想将一个画布上下文坐标空间转换为包含一个特定的边界框,并且我正在围绕它编写一个测试。

是否有可能实际“使用”上下文的转换,有点像这样:

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 );

}

或者还有其他方法可以编写这个测试函数吗?

1 个答案:

答案 0 :(得分:2)

可悲的是,没有本地方式来访问转换。你需要自己实现这个。有关详细信息,请参阅HTML5 Canvas get transform matrix?。希望这有帮助!