笛卡尔心形曲线
1650年,斯德哥爾摩的街頭,52歲的笛卡爾邂逅了18歲的瑞典公主克里斯汀。
那時(shí),落魄、一文不名的笛卡爾過(guò)著乞討的生活,全部的財(cái)產(chǎn)只有身上穿的破破爛爛的衣服和隨身所帶的幾本數(shù)學(xué)書(shū)籍。生性清高的笛卡爾從來(lái)不開(kāi)口請(qǐng)求路人施舍,他只是默默地低頭在紙上寫(xiě)寫(xiě)畫(huà)畫(huà),潛心于他的數(shù)學(xué)世界。
一個(gè)寧?kù)o的午后,笛卡爾照例坐在街頭,沐浴在陽(yáng)光中研究數(shù)學(xué)問(wèn)題。他如此沉溺于數(shù)學(xué)世界,身邊過(guò)往的人群,喧鬧的車馬隊(duì)伍。都無(wú)法對(duì)他造成干擾。
突然,有人來(lái)到他旁邊,拍了拍他的肩膀,“你在干什么呢?”扭過(guò)頭,笛卡爾看到一張年輕秀麗的瞼龐,一雙清澈的眼睛如湛藍(lán)的湖水,楚楚動(dòng)人,長(zhǎng)長(zhǎng)的睫毛一眨一眨的,期待著他的回應(yīng)。她就是瑞典的小公主,國(guó)王最寵愛(ài)的女兒克里斯汀。
她蹲下身,拿過(guò)笛卡爾的數(shù)學(xué)書(shū)和草稿紙,和他交談起來(lái)。言談中,他發(fā)現(xiàn),這個(gè)小女孩思維敏捷,對(duì)數(shù)學(xué)有著濃厚的興趣。
和女孩道別后,笛卡爾漸漸忘卻了這件事,依舊每天坐在街頭寫(xiě)寫(xiě)畫(huà)畫(huà)。
幾天后,他意外地接到通知,國(guó)王聘請(qǐng)他做小公主的數(shù)學(xué)老師。滿心疑惑的笛卡爾跟隨前來(lái)通知的侍衛(wèi)一起來(lái)到皇宮,在會(huì)客廳等候的時(shí)候,他聽(tīng)到了從遠(yuǎn)處傳來(lái)的銀鈴般的笑聲。轉(zhuǎn)過(guò)身,他看到了前兒天在街頭偶遇的女孩子?;琶χ?,他趕緊低頭行禮。
從此,他當(dāng)上了公主的數(shù)學(xué)老師。
公主的數(shù)學(xué)在笛卡爾的悉心指導(dǎo)下突飛猛進(jìn),他們之間也開(kāi)始變得親密起來(lái)。笛卡爾向她介紹了他研究的新領(lǐng)域——直角坐標(biāo)系。通過(guò)它,代數(shù)與幾何可以結(jié)合起來(lái),也就是日后笛卡爾創(chuàng)立的解析幾何學(xué)的雛形。
在笛卡爾的帶領(lǐng)下,克里斯汀走進(jìn)了奇妙的坐標(biāo)世界,她對(duì)曲線著了迷。每天的形影不離也使他們彼此產(chǎn)生了愛(ài)慕之心。
在瑞典這個(gè)浪漫的國(guó)度里,一段純粹、美好的愛(ài)情悄然萌發(fā)。
然而,沒(méi)過(guò)多久,他們的戀情傳到了國(guó)王的耳朵里。國(guó)王大怒,下令馬上將笛卡爾處死。在克里斯汀的苦苦哀求下,國(guó)王將他放逐回國(guó),公主被軟禁在宮中。
當(dāng)時(shí),歐洲大陸正在流行黑死病。身體孱弱的笛卡爾回到法國(guó)后不久,便染上重病。在生命進(jìn)入倒計(jì)時(shí)的那段日子,他日夜思念的還是街頭偶遇的那張溫暖的笑臉。他每天堅(jiān)持給她寫(xiě)信,盼望著她的回音。然而,這些信都被國(guó)王攔截下來(lái),公主一直沒(méi)有收到他的任何消息。
在笛卡爾給克里斯汀寄出第十三封信后,他永遠(yuǎn)地離開(kāi)了這個(gè)世界。此時(shí),被軟禁在宮中的小公主依然徘徊在皇宮的走廊里,思念著遠(yuǎn)方的情人。
這最后一封信上沒(méi)有寫(xiě)一句話,只有一個(gè)方程:r=a(1-sinθ)。
國(guó)王看不懂,以為這個(gè)方程里隱藏著兩個(gè)人不可告人的秘密,便把全城的數(shù)學(xué)家召集到皇宮,但是沒(méi)有人能解開(kāi)這個(gè)函數(shù)式。他不忍看著心愛(ài)的女兒每天悶悶不 樂(lè),便把這封信給了她。拿到信的克里斯汀欣喜若狂,她立即明白了戀人的意圖,找來(lái)紙和筆,著手把方程圖形畫(huà)了出來(lái),一顆心形圖案出現(xiàn)在眼前,克里斯汀不禁 流下感動(dòng)的淚水,這條曲線就是著名的“心形線”。
國(guó)王去世后,克里斯汀繼承王位,登基后,她便立刻派人去法國(guó)尋找心上人的下落,收到的卻是笛卡爾去世的消息,留下了一個(gè)永遠(yuǎn)的遺憾……
這封享譽(yù)世界的另類情書(shū),至今,還保存在歐洲笛卡爾的紀(jì)念館里。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--<noscript>r = a(1-sin"theta")</noscript>-->
<canvas id="cardioid" width="600" height="600">
您的瀏覽器不支持canvas!
</canvas>
<script>
var cr = document.getElementById("cardioid");
var W = cr.width/2, H = cr.height/3, R = 150;
var c = cr.getContext("2d");
var G = 360, g = 0, T = Math.PI*2, t = T/G;
c.save();
c.translate(W, H);
c.rotate(-T/4);
//c.fillStyle = "red";
while(g < G){
c.save();//c.translate(W, H);
c.rotate(g*t);
c.beginPath();
c.arc(0, -R*(1-Math.sin(++g*t)), 13, 0, 360, false);
c.closePath();
c.fill();
c.restore();
}
c.restore();
g = 0;
(function draw(){
if(g < G){
c.save();
c.translate(W, H);
c.rotate(-T/4 + g*t);
c.fillStyle = "red";
c.beginPath();
c.arc(0, -R*(1-Math.sin(++g*t)), 5, 0, 360, false);
c.closePath();
c.fill();
c.restore();
}
setTimeout(draw, 1);
})();
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset='UTF-8' />
<title>Cardioid</title>
</head>
<body>
<canvas id="pad" width='500' height='500'>你不換一個(gè)瀏覽器,比如chrome,將無(wú)法知道這個(gè)秘密。</a>
</canvas>
<script type="text/javascript">
var $id = function(n) {
return document.getElementById(n) || n;
}
window.addEventListener("load", draw, false);
var con = $id("pad").getContext('2d');
con.fillStyle = '#e21f27'
con.translate(200, 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)); //心形極坐標(biāo)表示法
con.arc(0, 0, r, start, end, false);
}
con.fill();
}
</script>
</body>
</html>
1 <html>
2 <head>
3 <meta charset='UTF-8' />
4 <title>LOVE</title>
5 </head>
6 <body>
7 <canvas id="pad" width='300' height='500'>提醒您:ie低版本用戶請(qǐng)更新你的瀏覽器</canvas>
8 <script type="text/javascript">
9 var $id = function(n) {
10 return document.getElementById(n) || n;
11 }
12 window.addEventListener("load", draw, false);
13 var con = $id("pad").getContext('2d');
14 con.fillStyle = '#e21f27'
15 con.translate(100, 100);
16
17 function draw() {
18 var r = 0,
19 a = 20,
20 start = 0,
21 end = 0;
22 con.rotate(Math.PI);
23 for (var q = 0; q < 1000; q++) {
24 start += Math.PI * 2 / 1000;
25 end = start + Math.PI * 2 / 1000;
26 r = a * Math.sqrt(225 / (17 - 16 * Math.sin(start) * Math.sqrt(Math.cos(start) * Math.cos(start))))
27 con.arc(0, 0, r, start, end, false);
28 }
29 con.fill();
30 }
31 </script>
32 </body>
33 </html>
總結(jié)
- 上一篇: IPv6地址在URL上的格式
- 下一篇: KDE常用桌面插件总结