1
我有一個imageCanvas與它的變換矩陣寫入到另一個浮動
Image = new image();
image.src = //stuff;
imageContext.drawImage(Image, 0, 0);
var t = imageContext.currentTransform;
正在另一畫布
context.drawImage(imageCanvas, 0, 0);
上,我畫線
context.moveTo(mousePos.X, mousePos.Y);
context.lineTo(currentPos.X, currentPos.Y);
context.stroke();
繪製
我將我的線條保存到對象'線條'的矢量中。 我想將兩個圖層合併到「圖像」中,但此功能僅適用於traslation,不適用於旋轉和縮放。
var saveCanvas = document.createElement('canvas');
var saveContext = saveCanvas.getContext('2d');
saveCanvas.width = Image.width;
saveCanvas.height = Image.height;
saveContext.drawImage(Image,0,0);
saveContext.save();
var t = imageContext.currentTransform;
saveContext.setTransform(1,0,0,1,-t.e,-t.f);
for(var i = 0; i < lines.length; i++){
saveContext.beginPath();
saveContext.moveTo(lines[i].from.X, lines[i].from.Y);
saveContext.lineTo(lines[i].to.X, lines[i].to.Y);
saveContext.stroke();
}
saveContext.restore();
Image.src = saveCanvas.toDataURL();
我怎麼能修改「的setTransform」的論點來解決這個問題?
nope,但我剛纔解決了。 var m = [[t.a,t.c,t.e],[t.b,t.d,t.f],[0,0,1]]; m = math.inv(m); saveContext.setTransform(m [0] [0],m [1] [0],m [0] [1],m [1] [1],m [0] [2],m [1] [ 2]); – Simone
@Simone它會幫助你知道你想要的逆矩陣。你也可以通過't.inverse()'得到逆矩陣。 –