基本信息
源码名称:Canvas画板绘图
源码大小:4.58KB
文件格式:.rar
开发语言:js
更新时间:2020-04-23
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元×
微信扫码支付:1 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
Canvas画板绘图
* Created 2016/11/8.
*/
function Draw(obj,setting){
this.obj=obj;
this.type=setting.type||"stroke";
this.color=setting.color||"#000";
this.width=setting.width||"1";
}
Draw.prototype={
init:function(){
this.obj.strokeStyle=this.color;
this.obj.fillStyle=this.color;
this.obj.lineWidth=this.width;
},
rect:function(x,y,x1,y1){
this.init();
this.obj.beginPath();
this.obj.rect(x,y,x1-x,y1-y);
if(this.type=="stroke"){
this.obj.stroke();
}else if(this.type=="fill"){
this.obj.fill();
}
},
line:function(x,y,x1,y1){
this.init();
this.obj.beginPath();
this.obj.moveTo(x,y);
this.obj.lineTo(x1,y1);
this.obj.stroke();
},
circle:function(x,y,x1,y1){
this.init();
var r=Math.sqrt(Math.pow(x-x1,2) Math.pow(y-y1,2));
this.obj.beginPath();
this.obj.arc(x,y,r,0,2*Math.PI);
if(this.type=="stroke"){
this.obj.stroke();
}else if(this.type=="fill"){
this.obj.fill();
}
},
poly:function(x,y,x1,y1,n){
this.init();
var obj=this.obj;
var r=Math.sqrt(Math.pow(x-x1,2) Math.pow(y-y1,2));;
obj.save();
obj.translate(x,y);
obj.rotate(Math.PI/2);
var nx=r*Math.cos(Math.PI/n);
var ny=r*Math.sin(Math.PI/n);
obj.beginPath();
obj.lineCap="round";
obj.moveTo(nx,ny);
for(var i=0;i<=n;i ){
obj.rotate(Math.PI*2/n);
obj.lineTo(nx,-ny);
}
if(this.type=="stroke"){
this.obj.stroke();
}else if(this.type=="fill"){
this.obj.fill();
}
obj.restore();
},
pen:function(x,y,x1,y1){
this.init();
this.obj.save();
this.obj.lineCap="round";
this.obj.lineTo(x1,y1);
this.obj.stroke();
this.obj.restore();
},
eraser:function(x,y,x1,y1){
this.obj.lineCap="round";
this.obj.clearRect(x1-5,y1-5,10,10);
},
cut:function(x,y,x1,y1){
this.init();
this.obj.save();
this.obj.setLineDash([4,2]);
this.obj.beginPath();
this.obj.lineWidth=1;
this.obj.rect(x,y,x1-x,y1-y);
this.obj.stroke();
this.obj.restore();
}
}
Canvas画板绘图
/**
* Created 2016/11/8.
*/
function Draw(obj,setting){
this.obj=obj;
this.type=setting.type||"stroke";
this.color=setting.color||"#000";
this.width=setting.width||"1";
}
Draw.prototype={
init:function(){
this.obj.strokeStyle=this.color;
this.obj.fillStyle=this.color;
this.obj.lineWidth=this.width;
},
rect:function(x,y,x1,y1){
this.init();
this.obj.beginPath();
this.obj.rect(x,y,x1-x,y1-y);
if(this.type=="stroke"){
this.obj.stroke();
}else if(this.type=="fill"){
this.obj.fill();
}
},
line:function(x,y,x1,y1){
this.init();
this.obj.beginPath();
this.obj.moveTo(x,y);
this.obj.lineTo(x1,y1);
this.obj.stroke();
},
circle:function(x,y,x1,y1){
this.init();
var r=Math.sqrt(Math.pow(x-x1,2) Math.pow(y-y1,2));
this.obj.beginPath();
this.obj.arc(x,y,r,0,2*Math.PI);
if(this.type=="stroke"){
this.obj.stroke();
}else if(this.type=="fill"){
this.obj.fill();
}
},
poly:function(x,y,x1,y1,n){
this.init();
var obj=this.obj;
var r=Math.sqrt(Math.pow(x-x1,2) Math.pow(y-y1,2));;
obj.save();
obj.translate(x,y);
obj.rotate(Math.PI/2);
var nx=r*Math.cos(Math.PI/n);
var ny=r*Math.sin(Math.PI/n);
obj.beginPath();
obj.lineCap="round";
obj.moveTo(nx,ny);
for(var i=0;i<=n;i ){
obj.rotate(Math.PI*2/n);
obj.lineTo(nx,-ny);
}
if(this.type=="stroke"){
this.obj.stroke();
}else if(this.type=="fill"){
this.obj.fill();
}
obj.restore();
},
pen:function(x,y,x1,y1){
this.init();
this.obj.save();
this.obj.lineCap="round";
this.obj.lineTo(x1,y1);
this.obj.stroke();
this.obj.restore();
},
eraser:function(x,y,x1,y1){
this.obj.lineCap="round";
this.obj.clearRect(x1-5,y1-5,10,10);
},
cut:function(x,y,x1,y1){
this.init();
this.obj.save();
this.obj.setLineDash([4,2]);
this.obj.beginPath();
this.obj.lineWidth=1;
this.obj.rect(x,y,x1-x,y1-y);
this.obj.stroke();
this.obj.restore();
}
}