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 16 HTML / CSS
css3圆角边框和边框阴影示例
May 05 HTML / CSS
CSS的background属性及CSS3的背景图片设置总结
Jun 13 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
Dec 01 HTML / CSS
HTML5应用之文件上传
Dec 30 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
Jan 07 HTML / CSS
html5 Canvas画图教程(1)—画图的基本常识
Jan 09 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
Dec 26 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
Aug 04 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
Aug 19 HTML / CSS
Css预编语言及区别详解
Apr 25 HTML / CSS
html2 canvas svg不能识别的解决方案
Jun 03 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
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
PHP递归的三种常用方式
2019/02/28 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Python编程实现蚁群算法详解
2017/11/13 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
优秀高中生事迹材料
2014/02/11 职场文书
成语的广告词
2014/03/19 职场文书
婚纱店策划方案
2014/05/22 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js