Canvas多边形绘制的实现方法


Posted in HTML / CSS onAugust 05, 2019

前言

Canvas绘制多变形非常简单,只要懂得Canvas路径 + 简单的初中数学知识即可完成

Canvas多边形绘制的实现方法

CodePen打开

解析

Canvas多边形绘制的实现方法

思路如上,非常简单,计算每一个点的位置通过lineTo()绘制路径即可

核心代码解析如下(或在CodePen中查看):

function drawPolygonPath(sideNum, radius, originX, originY, ctx){
  ctx.beginPath();
  const unitAngle = Math.PI * 2 / sideNum; //计算单元角度
  let angle = 0; //初始角度
  let xLength, yLength;
  // ctx.moveTo(originX, originY);
  for(let i = 0; i < sideNum; i++){ //遍历计算点,并lineTo()绘制路径
    xLength = radius * Math.cos(angle);
    yLength = radius * Math.sin(angle);
    ctx.lineTo(originX + xLength, originY - yLength);//绘制路径
    angle += unitAngle;
  }
  ctx.closePath();//闭合路径,也可在for循环中多一次循环lineTo()至起点
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
利用CSS3实现炫酷的飞机起飞动画
Sep 17 HTML / CSS
CSS伪类与CSS伪元素的区别及由来具体说明
Dec 07 HTML / CSS
css3一款3D字体带阴影效果的实现步骤
Mar 20 HTML / CSS
css3进阶之less实现星空动画的示例代码
Sep 10 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
Dec 22 HTML / CSS
HTML5 Canvas图像模糊完美解决办法
Feb 06 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
Jul 10 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
Jun 20 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
Jul 02 HTML / CSS
详解HTML5中的Communication API基本使用方法
Jan 29 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
Apr 07 HTML / CSS
Canvas绘制像素风图片的示例代码
Sep 25 HTML / CSS
使用canvas压缩图片大小的方法示例
Aug 02 #HTML / CSS
HTML5实现移动端弹幕动画效果
Aug 01 #HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
Aug 01 #HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
Aug 01 #HTML / CSS
html5 冒号分隔符对齐的实现
Jul 31 #HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
Jul 31 #HTML / CSS
Canvas图片分割效果的实现
Jul 29 #HTML / CSS
You might like
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
Javascript中Eval函数的使用
2010/03/23 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
python str与repr的区别
2013/03/23 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
如何写python的配置文件
2020/06/07 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
2014年护士长工作总结
2014/11/11 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
教师学期末个人总结
2015/02/13 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
关于使用Redisson订阅数问题
2022/01/18 Redis
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers