canvas绘制网格线示例

canvas绘制网格线示例_第1张图片

查看专栏目录

canvas示例教程100+专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。

文章目录

    • 示例效果图
    • 示例源代码(共109行)
    • canvas基本属性
    • canvas基础方法

如何使用canvas绘制网格线呢?方法其实很简单,就是绘制一些等距间隔的横线和竖线,形成一个网格。通常在地图的绘制当中会用到,下面是大剑师的一个示例,供参考:

示例效果图

canvas绘制网格线示例_第2张图片

示例源代码(共109行)


/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: [email protected]
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2024-01-02
*/
<template>
	<div class="djs_container">
		<div class="top">
			<h3>canvas绘制网格线</h3>
			<div>大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
			<h4>
				<el-button type="primary" size="mini" @click="draw()">绘制</el-button>
			</h4>
		</div>
		<div class="dajianshi ">
			<canvas id="dajianshi" ref="mycanvas" width="980" height="490"></canvas>
		</div>

	</div>
</template>
<script>
	export default {
		data() {
			return {
				ctx: null,
				canvas: null,
			}
		},
		mounted() {
			this.setCanvas()
		},
		methods: {
			setCanvas() {
				this.canvas = document.getElementById('dajianshi');
				if (!this.canvas.getContext) return;
				this.ctx = this.canvas.getContext("2d");
			},
			draw() {
				this.drawGrid(this.ctx, 0, 0, 50, 980, 490, 50, "orange");
			},

			// 参数说明:
			// ctx:画布
			// x1:起始x位置
			// y1:起始y位置
			// step1:横向间隔
			// x2:终止x位置
			// y2:终止y位置
			// step1:竖向间隔
			// color:颜色值						

			drawGrid(ctx, x1, y1, step1, x2, y2, step2, color) {
				ctx.save();
				ctx.lineWidth = 0.5;
				ctx.strokeStyle = color;
				ctx.fillStyle = color;

				let x, y;
				// 画竖线
				for (x = x1; x < x2; x += step1) {
					ctx.beginPath();
					ctx.moveTo(x, y1);
					ctx.lineTo(x, y2);
					ctx.stroke();
					ctx.closePath();
				}
				// 画横线
				for(y=y1;y<y2;y+=step2){
				    ctx.beginPath();
				    ctx.moveTo(x1, y);
				    ctx.lineTo(x2, y);
				    ctx.stroke();
				    ctx.closePath();
				}				
				ctx.restore();

			}

		}
	}
</script>

<style scoped>
	.djs_container {
		width: 1000px;
		height: 680px;
		margin: 50px auto;
		border: 1px solid green;
		position: relative;
	}

	.top {
		margin: 0 auto 0px;
		padding: 10px 0;
		background: #333;
		color: #fff;
	}

	.dajianshi {
		margin: 5px auto 0;
		border: 1px solid #ccc;
		width: 980px;
		height: 490px;
		background-color: #f9f9f9;
	}
</style>


canvas基本属性

属性 属性 属性
canvas fillStyle filter
font globalAlpha globalCompositeOperation
height lineCap lineDashOffset
lineJoin lineWidth miterLimit
shadowBlur shadowColor shadowOffsetX
shadowOffsetY strokeStyle textAlign
textBaseline width

canvas基础方法

方法 方法 方法
arc() arcTo() addColorStop()
beginPath() bezierCurveTo() clearRect()
clip() close() closePath()
createImageData() createLinearGradient() createPattern()
createRadialGradient() drawFocusIfNeeded() drawImage()
ellipse() fill() fillRect()
fillText() getImageData() getLineDash()
isPointInPath() isPointInStroke() lineTo()
measureText() moveTo() putImageData()
quadraticCurveTo() rect() restore()
rotate() save() scale()
setLineDash() setTransform() stroke()
strokeRect() strokeText() transform()
translate()

你可能感兴趣的:(#,canvas示例教程100+,canvas网格线,canvas绘制网格)