【发布时间】:2014-02-03 06:42:21
【问题描述】:
我有一个包含图像的大画布,如下例所示:
我有红色矩形的位置和旋转角度:
red : {
top : top,
left : left,
width : width,
height : height,
angle : angle
}
我还有一整套翻译后的坐标,表示红色旋转矩形的实际角点。
最后我得到 blue 矩形 relative 到 red 矩形的位置为:
blue : {
left : left,
top: top,
width : width,
height : height
}
我需要做的是创建一个新的画布,blue 矩形的大小包含 blue 矩形内包含的图像的正确旋转部分在这样的图像中:
我正在使用 HTML5 画布在 javascript 中执行此操作。我遇到的问题是在旋转矩形时获得正确的图像部分。
任何 hep 将不胜感激
编辑:这是我目前所拥有的:
var c = getCenterPoint(); // returns center x/y positions of the RED rectangle
canvas.width = blue.width;
canvas.height = blue.height;
var blueX = red.left + blue.left;
var blueY = red.top + blue.top;
var tx = blueX - c.x;
var ty = blueY - c.y;
this.cursorContext.translate(tx, ty);
this.cursorContext.rotate(angle * (Math.PI / 180));
this.cursorContext.translate(-tx, -ty);
this.cursorContext.drawImage(image, -blueX, -blueY, blue.width, blue.height);
【问题讨论】:
-
能分享一下你试过的相关代码吗?
-
@Ken 请看我的编辑
标签: javascript canvas html5-canvas