前言

Canvas绘制多变形非常简单,只要懂得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 根据坐标画多边形,Canvas多边形绘制的实现方法相关推荐

  1. php画钟,canvas如何绘制钟表的方法_html5教程技巧

    这篇文章主要介绍了HTML5中的canvas如何绘制钟表的方法的相关资料,小编觉得HTML真的是越来越强大的,现在分享给大家,也给大家做个参考.对HTML的小伙伴们可以一起跟随小编过来看看吧 本文介绍 ...

  2. html根据坐标画圆,Canvas三种动态画圆实现方法说明(小结)

    前言 canvas是HTML5出来的绘图API容器,对于图形的处理非常强大,下面使用canvas配合JavaScript来做一下动态画圆效果.可以用它来做圆形进度条来使用. 这里我个人总结了3种实现方 ...

  3. 将图片画到canvas 上的几种方法

    我的网站:http://www.mzzy8.com/ 任何的知识体系,都是由小的知识体系构成,你要想成为高手 无法第一步就是把所有的琐碎的知识都搞定它! 写的多了,自然就会了,这也是为啥要写笔记,写笔 ...

  4. canvas动态绘制图片的方法

    应用场景 在制作html5小游戏时需要使用canvas绘制图片,但是图片是异步加载的,需要发送请求获取数据,这就导致不能在设置src之后直接使用绘制方法,而是需要等待图片加载完成. 加载单张图片 使用 ...

  5. html5canvas中波浪线怎么画,html5 canvas画波浪

    要实现这样的动画普通的CSS3是鞭长莫及了,只能使用Canvas.好在使用canvas也非常简单. Step1. 新建一个画布()元素,并放在所有按钮和logo的下方以免遮挡前面的元素. 将Canva ...

  6. SVG、canvas、绘制线段和填充多边形、矩形、曲线的绘制和填充

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 1.了解网页中的两个绘图技术 (1)SVG (2)canvas (3)画布的尺寸和坐标 2.绘制线段和填充多 ...

  7. 画闭合的多边形 - HTML5 Canvas 作图

    10.function DrawPolygon(Canvas,P) 功能:画闭合的多边形 参数:P是一个包含各个顶点坐标的数组 实例: <html> <script type=&qu ...

  8. Qt+OpenCV联合开发(十八)--多边形填充与绘制

    一.知识点 API 知识点: 1.polylines&fillPoly 2.drawContours 二.函数原型 1.polylines polylines的c++原型: 参数一:img  ...

  9. html坐标绘制路径,HTML5 CANVAS:绘制路径

    一条HTML5 canvas路径是通过绘制指令来连接一系列的点,由这一系列的点构成直线或曲线.路径可以用于在HTML5 canvas上绘制各种类型的图形:直线.圆形.多边形等等.路径的绘制是canva ...

最新文章

  1. usaco Drainage Ditches(网络流dinic模板)
  2. QS世界大学最新排名公布:清华超过耶鲁,MIT仍居榜首,12所中国高校跻身百强...
  3. python中变量的作用域有几种_Python中变量的作用域(variable scope)
  4. perl 取出目录中的所有文件并存入文件中
  5. 社会化图标html,[CSS]响应式社会化分享按钮
  6. TPL Dataflow组件应对高并发,低延迟要求
  7. [有限元]桁架结构中杆单元的节点序号和单元序号的确定依据
  8. php 初始化model,TP5 model类研究
  9. docker mysql node_Docker打包nodejs项目和数据库
  10. Pycharm连接Mysql问题: Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon
  11. 数值分析(11)-数值积分
  12. 软件开发方法之敏捷开发,你用了么?
  13. 机器人学导论原书第三版
  14. 一文读懂斗鱼上市:直播江湖风云再起,强行盈利背后的艰难上市路
  15. Photoshop 渐变工具使用
  16. linux游戏主机,Steam OS界面介绍
  17. 义隆循环左移c语言,二进制除法运算(义隆单片机)
  18. 概率论考点之概率的性质(全概公式及贝叶斯公式)
  19. DFINITY 明星项目盘点,区块链热门赛道一览
  20. C语言中*p++ ,(*p)++ ,*++p ,++*p的区别

热门文章

  1. 联想thinkbook14+2023款和2022款区别对比评测
  2. win7电脑怎么录制视频 电脑怎么录屏
  3. LAMP环境和wordpress站点搭建
  4. 如何实现某些软件自动点赞
  5. Ubuntu apt install / update错误前因后果: 连接失败 [IP: 91.189.91.* 80]
  6. java 实现手机号码(String)校验----两种方法
  7. 光头探长正在连接服务器,光头探长全关卡攻略汇总 全关卡通关详解
  8. hbuilder发生了错误请参阅日志文件1545838571032
  9. 从零说起: 6.网络编程
  10. 如图GX Works2所示我该如何操作?