本文主要使用坐标轴的使用来绘制多边形,点位则都是在y轴上寻找,这种方法能够更好的理解图形与修改。

//id为html里canvas标签的属性id;
//x,y为坐标轴的起始位置,因为canvas默认坐标轴在左上角
//color为填充图形颜色
//...side为边,如果有5个参数则绘制出来的为五边形,6个就是六边形
var draw = function(id, x, y, color, ...side){
var c = document.getElementById(id);
var ctx = c.getContext("2d");
//移动起始坐标轴
ctx.translate(x,y);
ctx.fillStyle = color;
//坐标轴旋转的角度
var angle = 360/(side.length);
ctx.beginPath();
//第一个点位
ctx.moveTo(0,-side[0])
for(let i=1; i<side.length; i++){
//旋转坐标轴
ctx.rotate(angle*Math.PI/180);
ctx.lineTo(0,-side[i]);
}
//填充
ctx.fill();
ctx.closePath();
}
draw('mycanvas',50,50,'#F0F0F0',50,50,50,50,50,50);
draw('mycanvas',0,0,'#E0E0E0',25,25,25,25,25,25);
draw('mycanvas',0,0,'#FF9797',25,25,20,20,40,25);

这张图片是代码执行后的结果

最新文章

  1. Html5 舞动的雨伞
  2. Sqli-LABS通关笔录-15
  3. javascript 中关于对象转换数字值的一些特点
  4. C语言原子接口与实现
  5. vijos 1037 ***
  6. 基础学习总结(八)--HttpClient
  7. C# 条码标签打印程序,RDLC报表动态显示多条码标签的方法
  8. php实现调用微信上传照片然后保存至服务器与数据库
  9. MVC-Model数据注解(一)-系统(DataAnnotations)
  10. HTML与CSS入门——第十四章  使用边距、填充、对齐和浮动
  11. 计算机程序的思维逻辑 (63) - 实用序列化: JSON/XML/MessagePack
  12. JS实现日历控件选择后自动填充
  13. 前台跨站点获取session
  14. thinkphp5URL和路由
  15. gcd 二进制/循环
  16. TCP连接的3次握手和4次挥手
  17. Eloquent JavaScript #02# program_structure
  18. QT学习相关
  19. Go 语言编程规范
  20. 微信小程序入门实例之记事本

热门文章

  1. asp.net上传超大文件
  2. 超大文件上传方案(ASP.NET)
  3. Java——GUI
  4. Internet History, Technology, and Security(week5)——Technology: Internets and Packets
  5. Spring Cloud架构教程 (七)消息驱动的微服务(核心概念)【Dalston版】
  6. Java基础之数组类型
  7. 170829-关于AOP面向切面编程
  8. 大数据笔记(二十)——NoSQL数据库之MemCached
  9. 《SQL Server 2012 T-SQL基础》读书笔记 - 9.事务和并发
  10. webstorm tools window