前言
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()至起点 }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
最近在学习AmazeUI框架,今天给大家分享的是AmazeUI 评论列表的实现示例,也给自...
如果您是库作者,您也许希望用户在使用 Kotlin 协程与 Flow 时可以更加轻松地调...
小程序的设计并没有完全遵循 Web 规范,导致小程序生态和传统 Web 开发生态之间...
Amaze UI 面向 HTML5 开发,使用 CSS3 来做动画交互,平滑、高效,更适合移动设...
当一个人需要编辑或修改网站设计,CSS发挥着重要的作用。使用css编码可以提高网...
作者 Arghya Ghosh 翻译 New Frontend 转载推荐:项目无论是用于自己的应用,还...
DreamWeaver是个原本由Macromedia公司所开发的著名网站开发工具。它使用所见即所...
在最新的html标准中 有了个calc css表达式,我们可以用这个来计算布局。 但是在...
Dreamweaver CS3设计网页的时候, 我们经常能泳道表格,它以简洁明了和高效快捷...
在CSS中有两个特殊值可以赋给任意属性,用于控制层叠:inherit和initial。我们来...