canvas绘制不同样式的六角星(示例源代码)

news/2024/11/29 20:46:22/

在这里插入图片描述

查看专栏目录

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

文章目录

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

如何使用canvas绘制不同样式的六角星呢?这里面要确定每个五六角星围绕中心点的角度是60度,这里封装了一个函数star(ctx, x, y, R, r, angle,fillColor,strokeColor),可以设定不同的值,来产生不同样式的六角星。

示例效果图

在这里插入图片描述

示例源代码(共88行)


/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2024-01-19
*/
<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() {let c = this.$refs.mycanvas;this.star(this.ctx, 490, 245, 200, 100, 30,'yellow','orange');this.star(this.ctx, 190, 245, 100, 30, 0,'purple','orange');this.star(this.ctx, 790, 245, 100, 60, 0,'pink','orange');				},star(ctx, x, y, R, r, angle,fillColor,strokeColor) {   //中心点x,中心点y,大半径R,小半径r,旋转角度anglectx.beginPath();for (var i = 0; i < 6; i++) {ctx.lineTo(Math.cos((0 + i * 60 - angle) / 180 * Math.PI) * R + x, -Math.sin((0 + i * 60 - angle) /180 * Math.PI) * R + y);ctx.lineTo(Math.cos((30 + i * 60 - angle) / 180 * Math.PI) * r + x, -Math.sin((30 + i * 60 - angle) /180 * Math.PI) * r + y);}ctx.closePath();ctx.fillStyle = fillColor;ctx.strokeStyle = strokeColor;ctx.lineWidth = 3;ctx.lineJoin = "round";ctx.fill();ctx.stroke();}}}
</script>
<style scoped>.djs_container {width: 1000px;height: 680px;margin: 50px auto;border: 1px solid #00bbdd;position: relative;}.top {margin: 0 auto 0px;padding: 10px 0;background: #00bbdd;color: #fff;}.dajianshi {margin: 5px auto 0;border: 1px solid #ccc;width: 980px;height: 490px;background-color: #f9f9f9;}
</style>

canvas基本属性

属性属性属性
canvasfillStylefilter
fontglobalAlphaglobalCompositeOperation
heightlineCaplineDashOffset
lineJoinlineWidthmiterLimit
shadowBlurshadowColorshadowOffsetX
shadowOffsetYstrokeStyletextAlign
textBaselinewidth

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()

http://www.ppmy.cn/news/1325070.html

相关文章

国产阿里的Copilot能提效30%吗?

国产阿里的Copilot能提效30%吗&#xff1f; Copilot简介 GitHub 和 OpenAI 共同打造的一款编程神器–Copilot&#xff0c; 这是一款立足于人工智能技术的编程助手。在此基础上&#xff0c;借助于 GitHub 庞大的代码库和来自全球的开源社区帮助&#xff0c;搭配 OpenAI 在自然…

【经典算法】有趣的算法之---粒子群算法梳理

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 粒子群算法 粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种用于解决优化问题的元启发式算法。它通过模拟鸟群或…

RabbitMQ 部署与配置[CentOS7]

# RabbitMQ,Erlang 版本包对应 https://rabbitmq.com/which-erlang.html#eol-seriescd /usr/local/src# Erlang下载 # https://github.com/rabbitmq/erlang-rpm/releases https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.5/erlang-23.3.4.5-1.el7.x86_64.rp…

[系统安全] 五十四.恶意软件分析 (6)PE文件解析及利用Python获取样本时间戳

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…

重磅发布!基于百度飞桨的《人工智能基础及应用》书籍正式上线

科技日新月异的今天&#xff0c;人工智能已经成为引领未来的核心驱动力。为了帮助大家更好地深入理解人工智能的理论和技术&#xff0c;为未来发展做好准备&#xff0c;百度飞桨教材编写组联合北京交通大学王方石教授、北京邮电大学杨煜清特聘副研究员共同撰写推出了《人工智能…

P1162 填涂颜色【解析】-----深度优先搜索

填涂颜色 题目描述 由数字 0 0 0 组成的方阵中&#xff0c;有一任意形状的由数字 1 1 1 构成的闭合圈。现要求把闭合圈内的所有空间都填写成 2 2 2。例如&#xff1a; 6 6 6\times 6 66 的方阵&#xff08; n 6 n6 n6&#xff09;&#xff0c;涂色前和涂色后的方阵如下&…

手把手教你学会接口自动化二十一-接入断言

我们写到现在&#xff0c;还缺一个很重要的东西&#xff0c;就是断言。 对于pytest&#xff0c;常用的断言就是python原生态的assert字段进行断言 # 断言语法 assert xx &#xff1a;判断 xx 为真 assert not xx &#xff1a;判断 xx 不为真 assert a in b &#xff1a;判…

kali下-MSF-ftp_login模块破解FTP账号及密码

一、环境准备 两台设备在同一个网络内 一台kali系统&#xff1a;192.168.10.128 一台winserver2016&#xff1a;192.168.10.132 二、MSF介绍 metasploit 全称是The Metasploit Framework&#xff0c;又称MSF&#xff0c;是Kali 内置的一款渗透测试框架&#xff0c;也是全球…