javascript - 我可以重新使用 html5 canvas 元素的转换吗?

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

假设我想转换 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 );

}

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

最佳答案

遗憾的是,没有本地方式来访问转换。您需要自己实现。参见 HTML5 Canvas get transform matrix?了解更多信息。希望这对您有所帮助!

关于javascript - 我可以重新使用 html5 canvas 元素的转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6789611/

相关文章:

javascript - 遍历 Ember 中的数组数组

javascript - 如何在javascript中为Imagebutton设置强制附件

javascript - HTML 表单文本 onkeyup

javascript - 选择第一个输入,但不要选择 type=hidden

javascript - jQuery选择点击的div

javascript - 如何从 karma 测试中模拟dom元素

javascript - Jasmine 测试 - 如何测试正在应用的 css 类?

javascript - MediaStreamRecorder 和 TypeScript 未捕获的类型错误

javascript - 当屏幕尺寸低于 X 像素时 jQuery 运行脚本

c# - 如何使用 FluentAssertions 断言集合按 2 个属性排序?