python绘制笛卡尔心形线方程_canvas绘制爱心的几种方法
第一种方法:桃心形公式
代码实现的一种方法
使用桃心形方程绘制爱心
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绘制爱心的几种方法相关推荐
- python画笛卡尔心形线方程_考研数学——Python绘制极坐标图,画笛卡尔心形线、玫瑰线、阿基米德螺线、伯努利双纽线(加深图像理解)...
<张宇基础30讲>第一讲的几张极坐标图象,这里用Python来实现一下,加深理解,并学习绘制极坐标图像. 1.笛卡尔心形线 公式: import numpy as np import ma ...
- python画笛卡尔心形线方程_伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式...
来源标题:伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式 近日,一对江西南昌的高颜值学霸情侣引发广泛关注.来自东华理工大学的刘旭东和朱丽芳双双考研成功,两人复试分别以369分和375分的成绩同时被武 ...
- 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( ...
- python turtle笛卡尔心形线_一个浪漫又悲情的爱情故事——笛卡尔心形线
说明 写这篇文章是因为某天看到这样一个公式 r=a(1-cosθ) ,我上网搜了下,原来是笛卡尔心形线的极坐标方程,这个方程里面的确有一个浪漫又悲情的爱情故事,感兴趣的朋友可以点这里看看,而至于这个故 ...
- 使用python绘制笛卡尔心形线
#笛卡尔心形线,r=a(1-sinθ) import math import matplotlib.pyplot as plt import numpy as np r=[] angle=[] for ...
- python画笛卡尔心形线_伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式
近日,一对江西南昌的高颜值学霸情侣引发广泛关注.来自东华理工大学的刘旭东和朱丽芳双双考研成功,两人复试分别以369分和375分的成绩同时被武汉大学资源与环境专业录取.当说起两人为何一起努力考研去同一所 ...
- python turtle笛卡尔心形线_用MATLAB实现心形线
背景 众所周知,笛卡尔是一位超越时代的数学家.物理学家和思想家.他在数学领域所创造的成就影响着自他之后所有的数学研究,他可以被称为解析几何之父.在哲学和心理学方面,笛卡尔也获得了非凡的成就,他是二元论 ...
- python绘制笛卡尔心形线——左半边红色,右半边蓝色
文章目录 参数方程 实现效果 代码实现 最近看完了<隐秘的角落>,除了被玩坏的爬上梗之外. 还有一个贯穿始终的小故事--关于笛卡尔的心形线的故事.两个版本的故事,一个是美好的童话,一个是残 ...
- 【Python】笛卡尔心形线——数学家的浪漫(花式哄小女友第一天)
文章目录 简介 演示 安装 方程 参数方程 极坐标方程 源码 拓展 仓库 其它 参考 简介 用python的matplotlib库绘制心形线. 演示 心-直角坐标 心-极坐标系 扁点的心 动态绘制 安 ...
最新文章
- mysql的ab测试工具_轻量级性能测试工具ab / wrk / locust 分析 对比
- MDaemon 10.1.2 通过Webclient发邮件时,提示“发邮件时发生错误
- 第十四周项目2-带姓名的成绩单
- WCF关于svcutil生成关于TCP绑定出现 元数据包含无法解析的引用:“net.tcp://127.0.0.1:9999/xxxx/”的解决方案...
- DL:听着歌曲《成都》三分钟看遍主流的深度学习的神经网络的发展框架(1950~2018)
- 调试九法:软硬件错误的排查之道书评
- python 新闻摘要_每日新闻摘要:Microsoft内部禁止应用程序,这样就可以了
- 计算机第一课 教案 纪律,信息技术开学第一课-纪律
- Python外卷(8)--pdist, squareform
- clob和blob是不是可以进行模糊查询_你知道什么是 MySQL 的模糊查询?
- python安装失败无法访问_错误:由于环境错误而无法安装包错误:[WinError 5]访问被拒绝:...
- AMD完成对赛灵思的收购
- 【ElasticSearch】IK分词加入标点符号
- 纯CSS3实现打火机火焰动画
- Ubuntu 16.04 安装 GCC-7.3.0
- Overloud TH3 for Mac(电吉他效果器)
- jquery更新后怎样在一个站点中使用两个版本号的jQuery
- 自建ngrok私服, 总是提示 Tunnel xxx.ngrok.mydomain.com not found
- 2018浙大计算机考研经验
- AMD无悔卖掉晶圆厂:代工好处多 产能不再是问题