封装 用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: 6
65     });
66     line2.stroke();
67 </script>

效果图:

时间: 2024-10-22 03:16:36

封装 用canvas绘制直线的函数--面向对象的相关文章

canvas绘制直线多边形(二)

在绘制之前,依据上一节所说的内容获取context  2维画布 1 context.moveTo(x,y); 定义绘图开始 2 context.lintTo(x1,y1); 定义线条画到的位置 3 context.lineWidth=5; //线条宽度 4 context.strokeStyle="red" //线条颜色 5 context.stroke(); //用于绘制线条 利用上述代码我们可以绘制一条,从(x,y)坐标开始,到(x1,y1)结束的宽5个像素,颜色为红色的直线  

js 利用canvas绘制直线、曲线

<body> <!--画板--> // 当浏览器不支持的时候才会出现文字 <canvas id="canvas" style="background-color: black;">您当前的版本不支持 </canvas> <script type="text/javascript"> // 拿到画板 var canvas = document.getElementById('canvas'

canvas绘制直线和多边形基本操作

<!DOCTYPE HTML> <html lang="en"> <body> <canvas id="canvas" width="1024" height="768" style="border:1px solid #aaa;display:block;margin:0 auto;"> 您的浏览器不支持 canvas 标签. </canvas>

使用html5 Canvas绘制线条(直线、折线等)

使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeStyle 用于设置画笔绘制路径的颜色.渐变和模式.该属性的值可以是一个表示css颜色值的字符串.如果你的绘制需求比较复杂,该属性的值还可以是一个CanvasGradient对象或者CanvasPattern对象 globalAlpha 定义绘制内容的透明度,取值在0.0(完全透明)和1.0(完全不透明)之间,默认

使用Canvas绘制图形的基本教程

原文地址:http://www.cnblogs.com/picaso/archive/2012/11/26/2789077.html HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把. 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是几个实例,记下以备后用. 1.使用Canvas绘制直线: <!doctype html> <html> <head> <meta ch

HTML5之Canvas绘图——使用Canvas绘制图形的基本教程

原文转自:http://www.cnblogs.com/picaso/archive/2012/11/26/2789077.html HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把. 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是几个实例,记下以备后用. 1.使用Canvas绘制直线: 1 <!doctype html> 2 <html> 3 <head> 4 <

使用canvas绘制时钟并通过class面向对象

使用canvas绘制时钟并通过class面向对象 1.思路分析 钟表可分为静止的刻度和动态的指针两大部分由于指针具有动态性,必然需要定时器实时刷新清空并重绘但刻度部分如果一起清空并重绘会降低性能因此可以使用两个重叠在一起的canvas画板来分别绘制两个部分 2.绘制表盘步骤 2.1.首先获取第一个面板的上下文: var canvas1=document.getElementById("canvas1"); var ctx1=canvas1.getContext("2d&quo

canvas绘制形状

栅格 之前简单模板中有个宽/高150px的canvas元素.如下图所示,canvas元素默认被网格所覆盖.通常来说网格中的一个单元相当于canvas元素中的一像素.栅格的起点为左上角(坐标为(0,0)).所有元素的位置都相对于原点定位.所以图中蓝色方形左上角的坐标为距离左边(Y轴)x像素,距离上边(X轴)y像素(坐标为(x,y)). 绘制矩形 不同于SVG,HTML中的元素canvas只支持一种原生的图形绘制:矩形.所有其他的图形的绘制都至少需要生成一条路径. canvas提供了三种方法绘制矩形

用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> 1