用canvas画一个爱心

首先找了一个心形线公式:

x=12*sin(t)-4*sin(3*t)

y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)

代码如下:

function heart() {

        const c = document.getElementById("myCanvas");

        const ctx = c.getContext("2d");

        //设置初始弧度

        let radian = 0;

        //设置弧度增量,每次增加1°

        let radian_add = Math.PI / 180;

        //开始绘图

        ctx.beginPath();

        // 重新映射画布上的 (0,0) 位置

        ctx.translate(250, 200);

        // 设置绘制起点

        ctx.moveTo(getX(radian), getY(radian));

        // 弧度小于等于360°

        while (radian <= Math.PI * 2) {

          //每增加一次弧度,绘制一条线

          radian += radian_add;

          X = getX(radian);

          Y = getY(radian);

          ctx.lineTo(X, Y);

        }

        ctx.strokeStyle = "red";

        ctx.stroke();

}

//获取心型线的X坐标,放大15倍

function getX(t) {

        return 15 * (12 * Math.sin(t) - 4 * Math.sin(3 * t));

}

//获取心型线的Y坐标,放大15倍

function getY(t) {

        return (

          -15 *

          (13 * Math.cos(t) -

            5 * Math.cos(2 * t) -

            2 * Math.cos(3 * t) -

            Math.cos(4 * t))

        );

}

实现效果如下,可在线查看效果

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,884评论 2 32
  • 最终效果 ##一、定义初始变量 letradius =140//外环半径letthickness =20//圆环厚...
    ican_6da9阅读 1,163评论 0 0
  • 上网搜索了angularjs裁剪,发现只有正方形和圆形 http://www.cnblogs.com/smilec...
    四脚蛇阅读 854评论 0 1
  • 最基本的使用创建一个画布所有的操作都在画布的context上面canvas是基于状态而不是基于对象的,比如说颜色都...
    亲爱的孟良阅读 1,762评论 0 4
  • https://blog.csdn.net/feiyunjs/article/details/94722766 /...
    FsdSoyu阅读 1,071评论 0 0

友情链接更多精彩内容