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 相关文章推荐
老生常谈CSS中的长度单位
Jun 27 HTML / CSS
使用CSS3实现字体颜色渐变的实现
Aug 10 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
Jun 05 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
Mar 01 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
Jun 30 HTML / CSS
HTML5 localStorage使用总结
Feb 22 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
Mar 31 HTML / CSS
html5中canvas图表实现柱状图的示例
Nov 13 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
Dec 23 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
Apr 07 HTML / CSS
AmazeUI 单选框和多选框的实现示例
Aug 18 HTML / CSS
CSS list-style-type属性使用方法
May 21 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
vue-router 起步步骤详解
2019/03/26 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
import的本质解析
2017/10/30 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Python实现GIF图倒放
2020/07/16 Python
python图片合成的示例
2020/11/09 Python
web页面录屏实现
2019/02/12 HTML / CSS
商务英语专业应届毕业生求职信
2013/10/28 职场文书
大型营销活动计划书
2014/04/28 职场文书
取保候审保证书
2014/04/30 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
户籍证明书标准模板
2014/09/10 职场文书
先进党支部事迹材料
2014/12/24 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python