javascript - 如何从画布中的渲染元素获取副本?
问题描述
如何复制绘制的元素并将其粘贴到画布中的另一个位置?
var ctx = canvas.getContext("2d");
function draw(){
ctx.moveTo(0,0);
ctx.lineTo(100,100);
ctx.lineTo(150,200);
ctx.stroke();
}
function copy(){
//.............
}
我需要一个可以在定义的坐标上复制画布中的一部分绘图的功能。
另外,如何在包上设置图纸组?
解决方案
您可以使用变换。另外:不要忘记使用ctx.beginPath();
document.getElementById("canvas");
const ctx = canvas.getContext("2d");
let cw = canvas.width = 300,
cx = cw / 2;
let ch = canvas.height = 300,
cy = ch / 2;
function draw(){
ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineTo(100,100);
ctx.lineTo(150,200);
ctx.stroke();
}
draw();
function copy(x,y){
ctx.save();
ctx.translate(x,y)
draw();
ctx.restore()
}
copy(50,10);
canvas{border:1px solid;}
<canvas id="canvas"></canvas>
推荐阅读
- api - 在 chrome 中使用授权 http 标头
- java - JPA 查询意外的 AST 节点:=
- python - 为什么 Kivy 中会出现解析异常?
- pyspark - groupby 并使用 pyspark 将多个列转换为列表
- android - 如何更改默认的 tabicon 位置?
- ruby-on-rails - Ruby on rails - activeadmin - batch_action 默认文本
- javascript - HTML 选择选项在按钮单击时不会被禁用/启用,因为它们应该是 Javascript
- c# - EF 6.2 查询数据库时不返回结果
- python - 通过将字母附加到重复项来使列表中的项目唯一
- java - java和selenium中的人类喜欢鼠标滚动