python编程实现打印笛卡尔之心
程序员文章站
2023-12-11 19:59:04
随着网剧《隐秘的角落》的热播,让法国数学家、哲学家笛卡尔重回大众视野,他的心形线也在剧情中抢尽风头。在隐秘的角落剧中,少年宫奥数老师张东升,在课上给同学们讲了这么一个故事:数学家笛卡尔流落到瑞典,邂逅了美丽的公主克里斯蒂娜。国王知道了这件事后,强行拆散了他们。后来,笛卡尔生病死去,在临死前给公主寄去了最后一封信,信中只有一行字:r=a(1-sinθ)。同样喜欢数学的公主最终解开了这个秘密——笛卡尔之心。下边笛卡尔写的!对,就这样子。好吧,抱歉有点瞎,这个爱情小说不应该看真人!看这个好了:....
随着网剧《隐秘的角落》的热播,让法国数学家、哲学家笛卡尔重回大众视野,他的心形线也在剧情中抢尽风头。
在隐秘的角落剧中,少年宫奥数老师张东升,在课上给同学们讲了这么一个故事:
数学家笛卡尔流落到瑞典,邂逅了美丽的公主克里斯蒂娜。国王知道了这件事后,强行拆散了他们。
后来,笛卡尔生病死去,在临死前给公主寄去了最后一封信,信中只有一行字:r=a(1-sinθ)。
同样喜欢数学的公主最终解开了这个秘密——笛卡尔之心。
下边笛卡尔写的!对,就这样子。
好吧,抱歉有点瞎,这个爱情小说不应该看真人!
看这个好了:
为了把这个表示出来,我们试着用python来打印一下这个‘浪漫色彩’的心形。
极坐标方程:ρ=a(1−sinθ)\rho = a (1-\sin\theta)ρ=a(1−sinθ)
也可以是这样:ρ=a(1−sinθ)
这里使用一下MATLIB来给我们打印出来(没版权),或者使用matplotlib打印。
import matplotlib.pyplot as plt
import numpy as np
Descartes = np.linspace(0.5*np.pi, 1.5*np.pi, 1000)
sintheta = np.sin(Descartes)
a = 1
y = a * sintheta * (1 - sintheta)
x = np.sqrt((1 - sintheta) ** 2 - y ** 2)
#x[::-1]步长为-1是反转x
x1 = np.hstack((x,-x[::-1]))
y1 = np.hstack((y,y[::-1]))
plt.plot(x1, y1, c = 'r')
plt.show()
theta = np.linspace(0.0, 2 * np.pi, 1000)
a = 5
rho = a * (1 - np.sin(theta))
plt.subplot(polar=True)
plt.plot(theta, rho, c = 'r')
plt.show()
当然了,这么浪漫的爱情故事,真的是我们看到的那样子吗?
别闹了,和隐秘的角落里一样,事情远远比想象的更加复杂。
就比如 看过不关注,不加红心!
本文地址:https://blog.csdn.net/ailuoyi521/article/details/107069189