canvas绘制六芒星

在这里插入图片描述

查看专栏目录

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

如何使用canvas绘制六芒星呢?它是由由两个正三角形组成 ,这里封装了一个函数regulaPolygon(cxt, n, dx, dy, R, angle, djs_fillColor, djs_strokeColor),可以设定两个正三边形,两个相差角度为60度。六芒星(Star of David) 又称大卫之星、大卫星、六角星等 六芒星象征着男女合一,孕育生命,代表着融合、圆满、吉祥,是护族符号。

示例效果图

在这里插入图片描述

示例源代码(共91行)


/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2024-01-22
*/
<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>
				<el-button type="danger" size="mini" @click="clearCanvas()">清除</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: {
   
			clearCanvas() {
   
				this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
			},
			setCanvas() {
   
				this.canvas = document.getElementById('dajianshi');
				if (!this.canvas.getContext) return;
				this.ctx = this.canvas.getContext("2d");
			},
			draw() {
   
				this.regulaPolygon(this.ctx, 3, 490, 245, 200, 30, 'transparent', 'red');
				this.regulaPolygon(this.ctx, 3, 490, 245, 200, 90, 'transparent', 'red');
			},

			//边数n中心点dx,中心点dy,半径R,旋转角度angle
			regulaPolygon(cxt, n, dx, dy, R, angle, djs_fillColor, djs_strokeColor) {
   
				cxt.beginPath();
				let degree = (2 * Math.PI) / n;
				let rangle = (angle * 2 * Math.PI) / 360;
				for (let i = 0; i < n; i++) {
   
					let x = Math.cos(i * degree - rangle);
					let y = Math.sin(i * degree - rangle);
					cxt.lineTo(x * R + dx, y * R + dy);
				}
				cxt.closePath();
				cxt.fillStyle = djs_fillColor;
				cxt.fill();
				cxt.strokeStyle = djs_strokeColor;
				cxt.stroke();
			}
		}
	}
</script>
<style scoped>
	.djs_container {
   
		width: 1000px;
		height: 680px;
		margin: 50px auto;
		border: 1px solid #991188;
		position: relative;
	}

	.top {
   
		margin: 0 auto 0px;
		padding: 10px 0;
		background: #991188;
		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()

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-22 16:48:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-22 16:48:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-22 16:48:05       82 阅读
  4. Python语言-面向对象

    2024-01-22 16:48:05       91 阅读

热门阅读

  1. [Combine 开发] combineLatest、merge、zip的使用区别

    2024-01-22 16:48:05       53 阅读
  2. dp_day1

    2024-01-22 16:48:05       49 阅读
  3. DDD系列 - 第9讲 实体、值对象

    2024-01-22 16:48:05       61 阅读
  4. SQL笔记 -- 数据库结构优化

    2024-01-22 16:48:05       57 阅读
  5. Go 语言实现冒泡排序算法的简单示例

    2024-01-22 16:48:05       69 阅读
  6. 部署Golang服务

    2024-01-22 16:48:05       56 阅读
  7. 面试题-MySQL如何定位慢查询

    2024-01-22 16:48:05       56 阅读
  8. htb Analysis wp

    2024-01-22 16:48:05       35 阅读
  9. php.2安装Imagick扩展

    2024-01-22 16:48:05       59 阅读
  10. 计算机视觉未来的走向

    2024-01-22 16:48:05       51 阅读