你的位置:首页 > 网页设计

[网页设计]封装 用canvas绘制直线的函数


 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4   <meta charset="UTF-8"> 5   <title>用面向对象的思想 封装 在canvas绘制直线的函数</title> 6 </head> 7 <body> 8   <canvas id="cv"></canvas> 9 </body>10 </html>11 <script>12   var cv = document.getElementById("cv");13   cv.width = 600;14   cv.height = 300;15   cv.style.border = "1px solid red";16   var ctx = cv.getContext("2d");17 18   //面向对象编程19   //1 创建构造函数20   //2 构造函数的原型设置21   //3 调用的时候,通过 new+构造函数 来创建一个对象(实例)22 23   //构造绘制直线的函数24   function drawLine(parameters) {25     this.init(parameters);26   }27   //替换原型对象实现继承28   drawLine.prototype = {29     constructor: drawLine,30     init: function (parameters) {31       this.ctx = parameters.ctx;32       this.startX = parameters.points[0];33       this.startY = parameters.points[1];34       this.endX = parameters.points[2];35       this.endY = parameters.points[3];36       //以下3个属性,可以不设置,用短路运算实现添加默认属性值37       this.lineWidth = parameters.lineWidth || 1;38       this.lineDash = parameters.lineDash || [];39       this.strokeStyle = parameters.strokeStyle || "#000";40     },41     //原型中,一般用来储存对象的方法或者共有的属性42     stroke: function () {43       this.ctx.beginPath();44       this.ctx.moveTo(this.startX, this.startY);45       this.ctx.lineTo(this.endX, this.endY);46       this.ctx.lineWidth = this.lineWidth;47       this.ctx.setLineDash(this.lineDash);48       this.ctx.strokeStyle = this.strokeStyle;49       this.ctx.stroke();50     }51   };52 53   //调用构造函数,传入参数54   var line = new drawLine({55     ctx: ctx,56     points: [100, 100, 300, 100],57     lineDash: [4, 2],58     strokeStyle: "red"59   });60   line.stroke();61   var line2 = new drawLine({62     ctx: ctx,63     points: [100, 200, 300, 200],64     lineWidth: 665   });66   line2.stroke();67 </script>

 效果图:




去海岛旅游跟团行程海岛旅游护照签证海岛旅游路线报价费用海岛旅游哪里好玩呢海岛旅游签证怎么办理东莞粤晖园要门票么?东莞粤晖园拓展基地另收费吗? 东莞粤晖园钓鱼怎么收费?粤晖园渔具多少钱? 去这些全球色彩之地,找属于自己的颜色![六] 奇特的菲律宾瀑布餐厅 用餐请脱鞋 (图)[一十十] 长隆大马戏官网,广州长隆大马戏官方网站。 哈尔滨松北区委书记刘臣带你了解松北(图) 哈尔滨平房区委书记于得志带你了解平房 广州长隆2015万圣节活动好玩吗?长隆万圣节具体活动时间表? 2015三水荷花世界中秋节活动?荷花世界中秋节有什么好玩的? 金沙大湿地公园门票多少钱?南海金沙大湿地公园怎么玩? 金沙大湿地公园烧烤多少钱?南海金沙大湿地公园游玩项目介绍? 南海金沙湿地公园好玩吗?金沙湿地公园一日游攻略? 龙岗日月潭好玩吗?深圳龙岗日月潭可以烧烤吗? 龙岗荷坳日月潭怎么样?荷坳日月潭有什么? 长隆水上乐园票退票吗?番禺长隆水上乐园是电子票吗? 惠州昆山峡森林海漂流地址?昆山峡森林海漂流在哪里? Q65110A7875 Datasheet Q65110A7875 Datasheet Q65110A7876 Datasheet Q65110A7876 Datasheet Q65110A7878 Datasheet Q65110A7878 Datasheet 三月份的节日 三月份的节日 三月份的节日 2013广交会时间 2013广交会时间 2013广交会时间 爸爸去哪儿下一站 爸爸去哪儿下一站 爸爸去哪儿下一站