笛卡尔情书的秘密——心形函数的绘制

本文来自:http://www.iteye.com/topic/907069

r=a(1-sinθ)

据说这是笛卡尔死前寄出的最后一封情书的内容,

这里面隐藏着一个刻骨铭心的秘密。。。

一生只为等待能手绘这个函数给我的人

借助canvas的arc方法,将此函数绘制如下:

/p>

html>

Cardioid

href='http://www.cssass.com'>cssass.com

提醒您:ie低版本用户请一边惭愧去

吧,ie9可能需刷新。或者你试试访问

href='http://www.wolframalpha.com/input/?i=r%3D100%281-sin%CE%B8%29'>

这个网站

var $id=function(n){

return document.getElementById(n) || n;

}

window.addEventListener("load",draw, false);

var con=$id("pad").getContext('2d');

con.fillStyle='#f00'

con.translate(300,100);

function draw(){

var r=0 , a=100 , start = 0 , end= 0;

con.rotate(Math.PI);

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

start += Math.PI * 2 /500;

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

r=a * (1-Math.sin(start)); //心形极坐标表示法

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

}

con.fill();

}

如果使用bezierCurveTo方法,绘制各种曲线图形也不在话下,但那并不是通过心形函数本身绘制的。

关于心形线的一些资料

话说,极坐标公式是非常利于绘制图形的。

比如玫瑰线公式:r(θ) = a sin kθ

阿基米德螺线公式:r(θ) = a+bθ

都可以绘制如下:

/p>

html>

Rose

href='http://www.cssass.com'>cssass.com

提醒您:ie低版本用户请一边惭愧去

吧,ie9可能需刷新

var $id=function(n){

return document.getElementById(n) || n;

}

window.addEventListener("load",draw, false);

var con=$id("pad").getContext('2d');

con.strokeStyle='#a00'

con.translate(300,100);

function draw(){

var r=0 , a=100 , start = 0 , end= 0 , k=4; //可以改变k值试试

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

start += Math.PI * 2 /500;

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

r =Math.abs(a *(Math.cos( k * start))) //玫瑰线公式r(θ) = a sin kθ

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

}

con.stroke();

}

/p>

html>

Archimedean spiral

href='http://www.cssass.com'>cssass.com

提醒您:ie低版本用户请一边惭愧去

吧,ie9可能需刷新

var $id=function(n){

return document.getElementById(n) || n;

}

window.addEventListener("load",draw, false);

var con=$id("pad").getContext('2d');

con.strokeStyle='#a00'

con.translate(300,100);

function draw(){

var r=0 , a=20 , start = 0 , end= 0 , k=2;

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

start += Math.PI * 2 /100;

end = start + Math.PI * 2 /100;

r =a + k * start //阿基米德螺线

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

}

con.stroke();

}

另外,出于审美需求,我们的心型图形往往是这样的:

17(x^2+y^2)-16*abs(x)*y=225

但是这里所用到的坐标系是直角坐标系,我们需转换成极坐标方程,如下:

r=sqrt(225/(17-16sinθ*sqrt((cosθ)^2)))

最后,是我们的canvas大显身手的时候了:

/p>

html>

LOVE

href='http://www.cssass.com'>cssass.com

提醒您:ie低版本用户请一边惭愧去

吧,ie9可能需刷新

var $id=function(n){

return document.getElementById(n) || n;

}

window.addEventListener("load",draw, false);

var con=$id("pad").getContext('2d');

con.fillStyle='#f00'

con.translate(300,100);

function draw(){

var r=0 , a=20 , start = 0 , end= 0;

con.rotate(Math.PI);

for(var q=0; q<1000; q++){

start += Math.PI * 2 /1000;

end = start + Math.PI * 2 /1000;

r=a*Math.sqrt(225/(17-16*Math.sin(start)*Math.sqrt(Math.cos(start)*Math.cos(start))))

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

}

con.fill();

}

php情书之笛卡尔的情书,笛卡尔情书的秘密——心形函数的作图相关推荐

  1. 笛卡尔心形函数表达式_笛卡尔情书的秘密——心形函数的绘制

    本文来自:http://www.iteye.com/topic/907069 r=a(1-sinθ) 据说这是笛卡尔死前寄出的最后一封情书的内容, 这里面隐藏着一个刻骨铭心的秘密... 一生只为等待能 ...

  2. 笛卡尔心形函数表达式_几何画板制作笛卡尔心形函数的详细操作方法

    朋友们或许不知道几何画板怎样制作笛卡尔心形函数的详细操作,那么今天绿软吧就讲解几何画板制作笛卡尔心形函数的详细操作方法哦,希望能够帮助到大家呢. 1.新建参数.右键绘图区空白处,"新建参数& ...

  3. 笛卡尔心形函数表达式_笛卡尔心形曲线

    1650年,斯德哥尔摩的街头,52岁的笛卡尔邂逅了18岁的瑞典公主克里斯汀. 那时,落魄.一文不名的笛卡尔过着乞讨的生活,全部的财产只有身上穿的破破烂烂的衣服和随身所带的几本数学书籍.生性清高的笛卡尔 ...

  4. 笛卡尔心形函数图像c语言,笛卡尔-心形图 源代码 分析

    java的代码如下,谁能帮我用C#改写一下啊,谢谢,感激不尽 import javafx.application.Application; import javafx.scene.Scene; imp ...

  5. 笛卡尔心形函数表达式_笛卡尔坐标系里的桃心公式是什么

    展开全部 笛卡尔二维坐标系里的桃心公式:r=a(1-sinθ) 极坐标方程: 水平方向: ρ=a(1-cosθ) 或 ρ=a(1+cosθ) (a>0) 垂直方62616964757a68696 ...

  6. 笛卡尔心形函数表达式_笛卡尔的心形图

    隐函数的做图.心形图的笛卡尔坐标系形式为(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(9/80)*y.^2.*z.^3.fplot可以进行函数的做图,ezplot可以 ...

  7. html5实现笛卡尔心形函数,笛卡尔心型曲线

    canvas:平面直角坐标系画法 var canvas = document.querySelector('canvas'); var context = canvas.getContext('2d' ...

  8. php 情书,php趣味编程 - php输出笛卡尔情书的秘密

    /* 笛卡尔情书的秘密 心形图案的实现.重点是心形函数r=a(1-sin@),据说这是笛卡尔死前寄出的最后一封情书 内容.这里面隐藏着一个刻骨铭心的秘密:"一生只为等待能手绘这个函数给我的人 ...

  9. 基于Qt的笛卡尔心形表白程序

    基于Qt的笛卡尔心形表白程序 1.基本介绍 2.笛卡尔心形函数 3.QCustomPlot 4.功能介绍 1.ui界面 2.控件说明 5.程序说明 1.初始化设计 2.槽函数设计 1.按钮 2.滑动条 ...

  10. 笛卡尔乘积 oracle,笛卡尔乘积引出的表的连接

    1.多表连接简介: 在关系数据库中,一个查询往往会涉及多个表,因为很少有数据库只有一个表,而如果大多查询只涉及一个表的,那么那个表也往往低于第三范式,存在大量冗余与异常. 因此,连接(Join)就是一 ...

最新文章

  1. RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)
  2. 本机无法访问虚拟机上的nignx
  3. 数据库备份定期删除程序的开发。
  4. ubuntu 16.0.4 opencv 4.0.0 + opencv_contrib 4.0.0 cmake-gui 安装
  5. [SqlServer]数据库中自定义拆分字符串函数Split()
  6. 解决类似umount target is busy挂载盘卸载不掉问题
  7. Python:SMOTE算法——样本不均衡时候生成新样本的算法
  8. html中autocomplete无效,OnChange和AutoComplete都不能使用HTML.TextBox
  9. Volatile可见性
  10. oracle 总账 gl,oracle EBS R12 总帐设置手册 BR100GL.pdf
  11. SQL日期时间格式自由转换大全
  12. linux 命令启动菜单栏,Linux守护进程的启动方法
  13. Windows加域提示 已超出此域允许的创建的计算机账户的最大值,请联系统管理员
  14. 移动办公之路的行业探索
  15. 三菱modbusRTU通讯实例_三菱FX系列PLC如何接线并通过RS232进行下载程序
  16. 模糊c–均值聚类算法的原理解释及推导
  17. 读书笔记——《一个人的朝圣》
  18. Windows 下安装sql server 2016(附安装包资源)
  19. linux根文件系统与内核合二为一
  20. HDS USP系列存储

热门文章

  1. 麦克劳林公式求sin(x)
  2. STRAIGHT分析合成算法
  3. 行测判断推理部分之图形推理(位置)
  4. win10锁屏壁纸路径
  5. 三菱q plc modbus通讯协议详解_三菱Q系列PLC与昆仑通态触摸屏以太网通讯
  6. python如何判断用户的电话属于移动、联通、还是电信的
  7. 中国象棋java大作业doc_《java语言程序设计》课程设计-中国象棋对弈系统(源码).doc...
  8. UVa 11909 - Soya Milk
  9. 高等代数 线性空间(第8章)1 线性空间与子空间
  10. java修改文件只读_java修改文件为只读权限