第一种方法:桃心形公式

代码实现的一种方法

使用桃心形方程绘制爱心

var canvas = document.querySelector('canvas');

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

canvas.width = window.innerWidth;

canvas.height = window.innerHeight;

var Heart = function(ctx, x, y, a) {

this.ctx = ctx;

this.x = x;

this.y = y;

this.a = a;

this.vertices = [];

for(let i=0; i<50; i++) {

var step = i/50*(Math.PI*2);//设置心上面两点之间的角度,具体分成多少份,好像需要去试。

var vector = {

x : this.a*(16 * Math.pow(Math.sin(step), 3)),

y : this.a*(13 * Math.cos(step) - 5 * Math.cos(2 * step) - 2 * Math.cos(3 * step) - Math.cos(4 * step))

}

this.vertices.push(vector);

}

}

Heart.prototype.draw = function() {

this.ctx.beginPath();

this.ctx.translate(this.x,this.y);

this.ctx.rotate(Math.PI);

for(let i=0; i<50; i++) {

var vector = this.vertices[i];

this.ctx.lineTo(vector.x, vector.y);

}

this.ctx.fillStyle = "red";

this.ctx.fill();

}

canvas.onmousedown = function(e) {

var x = e.offsetX;

var y = e.offsetY;

var a = 6;

var heart = new Heart(ctx, x, y, a);

heart.draw();

}

第二种方法:笛卡尔的心形线

代码实现的一种方法:

使用笛卡尔心形线方程绘制爱心

var canvas = document.querySelector('canvas');

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

canvas.width = window.innerWidth;

canvas.height = window.innerHeight;

function Heart(ctx, x, y, a) {

this.ctx = ctx;

this.x = x;

this.y = y;

this.a = a;

this.draw = function() {

this.ctx.beginPath();

this.ctx.translate(this.x, this.y);

this.ctx.rotate(Math.PI);

var start = 0;

for(var i=0; i<500; i++) {

start += Math.PI*2/500;

var end = start+Math.PI*2/500;

var r = this.a*(1-Math.sin(start));

ctx.arc(0, 0, r, start, end, false);

}

ctx.fillStyle = "red";

ctx.fill();

}

}

canvas.onmousedown = function(e) {

var x = e.offsetX;

var y = e.offsetY;

var a = 60;

var heart = new Heart(ctx, x, y, a);

heart.draw();

}

第三种方法:

python绘制笛卡尔心形线方程_canvas绘制爱心的几种方法相关推荐

  1. python画笛卡尔心形线方程_考研数学——Python绘制极坐标图,画笛卡尔心形线、玫瑰线、阿基米德螺线、伯努利双纽线(加深图像理解)...

    <张宇基础30讲>第一讲的几张极坐标图象,这里用Python来实现一下,加深理解,并学习绘制极坐标图像. 1.笛卡尔心形线 公式: import numpy as np import ma ...

  2. python画笛卡尔心形线方程_伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式...

    来源标题:伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式 近日,一对江西南昌的高颜值学霸情侣引发广泛关注.来自东华理工大学的刘旭东和朱丽芳双双考研成功,两人复试分别以369分和375分的成绩同时被武 ...

  3. MATLAB绘制笛卡尔心形线---by CSDN ChitGPT AI大模型

    以下是MATLAB代码,用于绘制笛卡尔心形线: t = linspace(0, 2*pi); x = 16.*sin(t).^3; y = 13.*cos(t)-5.*cos(2*t)-2.*cos( ...

  4. python turtle笛卡尔心形线_一个浪漫又悲情的爱情故事——笛卡尔心形线

    说明 写这篇文章是因为某天看到这样一个公式 r=a(1-cosθ) ,我上网搜了下,原来是笛卡尔心形线的极坐标方程,这个方程里面的确有一个浪漫又悲情的爱情故事,感兴趣的朋友可以点这里看看,而至于这个故 ...

  5. 使用python绘制笛卡尔心形线

    #笛卡尔心形线,r=a(1-sinθ) import math import matplotlib.pyplot as plt import numpy as np r=[] angle=[] for ...

  6. python画笛卡尔心形线_伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式

    近日,一对江西南昌的高颜值学霸情侣引发广泛关注.来自东华理工大学的刘旭东和朱丽芳双双考研成功,两人复试分别以369分和375分的成绩同时被武汉大学资源与环境专业录取.当说起两人为何一起努力考研去同一所 ...

  7. python turtle笛卡尔心形线_用MATLAB实现心形线

    背景 众所周知,笛卡尔是一位超越时代的数学家.物理学家和思想家.他在数学领域所创造的成就影响着自他之后所有的数学研究,他可以被称为解析几何之父.在哲学和心理学方面,笛卡尔也获得了非凡的成就,他是二元论 ...

  8. python绘制笛卡尔心形线——左半边红色,右半边蓝色

    文章目录 参数方程 实现效果 代码实现 最近看完了<隐秘的角落>,除了被玩坏的爬上梗之外. 还有一个贯穿始终的小故事--关于笛卡尔的心形线的故事.两个版本的故事,一个是美好的童话,一个是残 ...

  9. 【Python】笛卡尔心形线——数学家的浪漫(花式哄小女友第一天)

    文章目录 简介 演示 安装 方程 参数方程 极坐标方程 源码 拓展 仓库 其它 参考 简介 用python的matplotlib库绘制心形线. 演示 心-直角坐标 心-极坐标系 扁点的心 动态绘制 安 ...

最新文章

  1. mysql的ab测试工具_轻量级性能测试工具ab / wrk / locust 分析 对比
  2. MDaemon 10.1.2 通过Webclient发邮件时,提示“发邮件时发生错误
  3. 第十四周项目2-带姓名的成绩单
  4. WCF关于svcutil生成关于TCP绑定出现 元数据包含无法解析的引用:“net.tcp://127.0.0.1:9999/xxxx/”的解决方案...
  5. DL:听着歌曲《成都》三分钟看遍主流的深度学习的神经网络的发展框架(1950~2018)
  6. 调试九法:软硬件错误的排查之道书评
  7. python 新闻摘要_每日新闻摘要:Microsoft内部禁止应用程序,这样就可以了
  8. 计算机第一课 教案 纪律,信息技术开学第一课-纪律
  9. Python外卷(8)--pdist, squareform
  10. clob和blob是不是可以进行模糊查询_你知道什么是 MySQL 的模糊查询?
  11. python安装失败无法访问_错误:由于环境错误而无法安装包错误:[WinError 5]访问被拒绝:...
  12. AMD完成对赛灵思的收购
  13. 【ElasticSearch】IK分词加入标点符号
  14. 纯CSS3实现打火机火焰动画
  15. Ubuntu 16.04 安装 GCC-7.3.0
  16. Overloud TH3 for Mac(电吉他效果器)
  17. jquery更新后怎样在一个站点中使用两个版本号的jQuery
  18. 自建ngrok私服, 总是提示 Tunnel xxx.ngrok.mydomain.com not found
  19. 2018浙大计算机考研经验
  20. AMD无悔卖掉晶圆厂:代工好处多 产能不再是问题

热门文章

  1. 蓝桥杯 2018 C++ A组 初赛部分题解
  2. 联机系统的服务器,远程联机服务器系统
  3. Huffman Codes
  4. 一天 第二章 纤腰舞困因谁,知谁系斑骓?
  5. 租用国外服务器兴起的背景
  6. dfs 访问拒绝_DFS文件夹无法访问
  7. IoT通讯技术选型及模型设计的思考
  8. MATLAB 2018a安装教程(迅雷)
  9. 汇编语言实现计算2的3次方
  10. 【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】