python画心型线

0.

首先讲一个美丽的故事:
1649年,斯德哥尔摩的街头,52岁的笛卡尔邂逅了18岁的瑞典公主克里斯汀。几天后,他意外的接到通知,国王聘请他做小公主的数学老师。跟随前来通知的侍卫一起来到皇宫,他见到了在街头偶遇的女孩子。从此,他当上了小公主的数学老师。
小公主的数学在笛卡尔的悉心指导下突飞猛进,笛卡尔向她介绍了自己研究的新领域–直角坐标系。每天形影不离的相处使他们彼此产生爱慕之心,公主的父亲国王知道了后勃然大怒,下令将笛卡尔处死,小公主克里斯汀苦苦哀求后,国王将其流放回法国,克里斯汀公主也被父亲软禁起来。
笛卡尔回法国后不久便染上重病,他日日给公主写信,因被国王拦截,克里斯汀一直没收到笛卡尔的信。笛卡尔在给克里斯汀寄出第十三封信后就气绝身亡了,这第十三封信内容只有短短的一个公式:r=a(1-sinθ)。国王看不懂,觉得他们俩之间并不是总是说情话的,将全城的数学家召集到皇宫,但没有一个人能解开,他不忍心看着心爱的女儿整日闷闷不乐,就把这封信交给一直闷闷不乐的克里斯汀。
公主看到后,立即明了恋人的意图,她马上着手把方程的图形画出来,看到图形,她开心极了,她知道恋人仍然爱着她,原来方程的图形是一颗心的形状。这也就是著名的”心形线”。
国王死后,克里斯汀登基,立即派人在欧洲四处寻找心上人,无奈斯人已故,先她一步走了,徒留她孤零零在人间…

好了,相信大家已经看到这个心型线的极坐标公式了:

r=a(1-sinθ)

这是个极坐标公式,没关系,python也可以画极坐标图,但是得先装两个库:matplotlib和numpy。

1.极坐标图(看代码,看注释)

import numpy as np
import matplotlib.pyplot as plt
T = np.linspace(0, 2 * np.pi, 1024)  # 角度范围 0-2*pi,划为1024等份
plt.axes(polar=True)    # 开启极坐标模式
plt.plot(T, 1. - np.sin(T), color="r")
plt.show()

这是摘自下面这篇博文的6行代码,可以说很厉害了
https://blog.csdn.net/wireless_com/article/details/69817498
运行效果如下:
极坐标爱心
但是…总觉得这个爱心….有点像苹果,然后又找到了下面这张图
瘦一点的爱心
然后自己动手画了一下这个瘦一点的爱心

2.瘦一点的爱心

import matplotlib.pyplot as plt
import numpy as np

plt.title('heart', fontsize=24)
x = np.linspace(-1, 1, 200)
# 把函数分为上下两个部分
y1 = np.sqrt(1-np.power(x, 2)) + np.power(np.square(x), 0.33)
y2 = -np.sqrt(1-np.power(x, 2)) + np.power(np.square(x), 0.33)
# 设置一下x轴、y轴的刻度和坐标间距
# 不自己设置用自动的不好看
my_x_ticks = np.arange(-2, 2.5, 0.5)
my_y_ticks = np.arange(-2, 2.5, 0.5)
plt.plot(x, y1, color='r')
plt.plot(x, y2, color='r')
plt.xticks(my_x_ticks)
plt.yticks(my_y_ticks)
plt.show()

运行一下,效果如下:
自己画的矮星重点内容

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值