Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在画布中呈现HTML画布_Javascript_Html_Canvas - Fatal编程技术网

Javascript 在画布中呈现HTML画布

Javascript 在画布中呈现HTML画布,javascript,html,canvas,Javascript,Html,Canvas,我需要解决一个复杂的情况,我已经有了一个Canvas元素用某种文本行等进行渲染。我不知道它是如何渲染的,以何种方式渲染的。但是现在我需要设置它的变换,这意味着旋转,缩放等等 var canvas = document.getElementById("item1-canvas"); var ctx = canvas.getContext("2d"); var angle1 = 0.1; var angle2 = 0.14; var cs = Math.cos(angle1), sn = Math

我需要解决一个复杂的情况,我已经有了一个
Canvas元素
用某种文本行等进行渲染。我不知道它是如何渲染的,以何种方式渲染的。但是现在我需要设置它的变换,这意味着旋转,缩放等等

var canvas = document.getElementById("item1-canvas");
var ctx = canvas.getContext("2d");

var angle1 = 0.1;
var angle2 = 0.14;
var cs = Math.cos(angle1), sn = Math.sin(angle1);
var h = Math.cos(angle2);

var a = 100*cs, b = -100*sn, c = 200;
var d = h*100*sn, e = h*100*cs, f = 200;

ctx.setTransform(a, d, b, e, c, f);
当我设置transform或任何东西时,画布被清除,需要重新绘制,但我不知道第一次绘制的确切机制。为了解决这个问题,我想到在另一个画布中渲染画布,这样初始画布就不需要以任何方式渲染。我们可以设置第二个画布的变换

我怎样才能做到

如果只是为了引入转换而将一个(位图)画布渲染到另一个(使用),则效果会很差。这是因为画布的结果不是矢量,而是像素


您需要在第一个画布上下文中捕获并记录绘图命令,以便以后可以在转换的上下文中重放它们。

我通过库获取第一个画布,因此我不知道它是如何呈现的,也不想将其挖掘出来。正如你所说的
drawImage
你能给我举个例子吗?我已经链接到了drawImage()的规格。非常感谢。你能不能给我建议一些变换,使图像倾斜。