H5-Canvas-Geometry-shapes-正多边形

本文介绍如何使用HTML5 Canvas绘制正多边形,并支持动画效果。核心函数根据边数、半径等参数绘制图形,支持顺时针、逆时针旋转动画,以及组合图形。文章探讨了实现多图形组合运动和扩展更多动画类型的挑战。
摘要由CSDN通过智能技术生成

正多边形绘制

今天上网的时候无意中看到好多几何图形,突然萌生出自己搞个生成器去绘制各种多边形,想想就开干了,先从简单的正多边形开始。

如下:

正多边形绘制实现

支持最少边数:3,最大:不限制;

支持链式重复绘制,从而可以组合成稍复杂点的图像;

支持单图形动画(顺时针,逆时针,顺逆时针互切,更多的动画有待完善);

绘制对象:


// regular-polygon.js

function RegularPolygon( canvas ) {
   

    this.ctx = canvas.getContext('2d');

    this.canvasWidth = canvas.width;
    this.canvasHeight = canvas.height;

    // 多边形边数,默认 3,即三边形
    this._sides = 4;

    // 默认多边形半径为画布宽高一半
    this._r = canvas.width / 2;

    // 图像样式
    this._styles = {};

    // 图像旋转的角度
    this.rad = 0;

    // 绘制时是否旋转角度
    this.isRotate = false;

    // 顺时针
    this.isClockwise = true;

    // 旋转模式
    this.isRoundBack = false;

    // 旋转状态
    this.isPaused = true;

    // 旋转动画计时器
    this.rotateTimer = 0;
}

绘制函数:draw

该函数是该程序的核心,负责绘制多边形和渲染。

  1. 先根据要绘制的图像边数(通过 this.sides(n) 设置,不设置时默认是三角形);
  2. 设置正多边形的外圆半径(通过 this.r(r) 默认为画布宽的一半);
  3. 然后分割外圆,通过 this.getXYs() 得到所有左边点;
  4. this.draw() 里面进行绘制路径即可。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若叶岂知秋vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值