就算会用python画颗心,可你依然还是只单身狗

:) 标题是开玩笑的,千万别认真。

随着AI的飞速发展,有志于此行的码农也是急剧的增加,带来的就是大家对算法、数学的兴趣也格外升高。

本文的来历是这样,今天某老同事在朋友圈发了一张屏拍,求公式。

看了一下还是难度不大,上半部分基本是两个半圆,下半部分是两个旋转了的反余弦函数。

不过我的数学也比较渣,看到这个步骤后面也就倒腾不清了,不过到这种程度在互联网上搜一搜找到答案还是不难的,很快就找到了正确的公式(以y=0为界限,肯定是需要两组解):

$$ y = \sqrt{1-(\left| x \right|-1)^2}, arccos(1-\left| x \right|)-\pi $$

否则只是搜心形函数,肯定会得到一大票各式各样,但不吻合题意的图片,比如:

验证这个公式用mathmatics最方便,不过刚换了电脑,刚好没装。

最近在做python3方面的事情,5分钟用python3写了一个验证程式,源码附上:

#!/usr/bin/env python3

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np

x = np.linspace(-2, 2, 200)
y1 = np.sqrt(1-np.square(np.fabs(x)-1))
y2 = np.arccos(1-np.fabs(x))-np.pi

plt.plot(x, y1, ‘r‘,x,y2,‘r‘)
plt.axis([-2.5, 2.5, -3.5, 1.5])

plt.title(‘Heart of numbers, By @andrew‘, fontsize=16)

plt.show()

绘制的结果就是题头图。

程序用到了matplotlib和numpy两个库,运行前需要先用pip3安装一下。

参考资料

https://www.quora.com/What-is-the-equation-that-gives-you-a-heart-on-the-graph

原文地址:https://www.cnblogs.com/andrewwang/p/9061942.html

时间: 2024-08-02 07:38:52

就算会用python画颗心,可你依然还是只单身狗的相关文章

python画出心形图

程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillcolor('pink') speed(5) up() goto(-30, 100) down() begin_fill() left(90) circle(120,180) circle(360,70) left(38) circle(360,70) circle(120,180) end_fill

WPF 如何画一颗心

原文:WPF 如何画一颗心 如何用WPF画一个心. MainWindow.xaml <Window x:Class="Heart.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://sch

使用QT画颗树 二

第一个版 请移步: http://blog.csdn.net/wzwxiaozheng/article/details/6963086 第二版增加内容: 鼠标点击窗口,树会慢慢长大. 一直摁鼠标就是了. QT的工程在这里下载: http://download.csdn.net/detail/wzwxiaozheng/7412583 这次就不要分了,哈哈哈哈 大家有什么想法 ,可以留言,我在后续会考虑添加. 使用QT画颗树 二

TensorFlow的初次使用+Python画3D图和计算KL散度

ython计算KL散度import numpy as np import scipy.stats x = [np.random.randint(1,11) for i in range(10)] print(x) print(np.sum(x)) px = x/np.sum(x)#归一化 print(px) y = [np.random.randint(1, 11) for i in range(10)] print(y) print(np.sum(y)) py = y / np.sum(y)#

没有基础小编带你,用python画机器猫(有代码)

小编带你玩python 没有基础小编带你,用python画机器猫.只需要python3和小编的代码即可.python3小编送,代码文章有,现在就差个你了. 运行不了的找小编,小编包教会你. 重要的事情说三遍: python3小编送,代码文章有. python3小编送,代码文章有. python3小编送,代码文章有. 运行不了的找小编,加Q君羊 八八三四四四一零六. 君羊里的小伙伴和管理员的会这个运行这个源代码.需要学习视频的直接找管理员要,就说是小编让的,烦死她.欢迎小伙伴的加入. 原文地址:h

python 画3D的高斯曲线

用python画3D的高斯曲线,我想如果有多个峰怎么画? import numpy as npimport matplotlib.pyplot as pltimport mathimport mpl_toolkits.mplot3d x, y = np.mgrid[-2:2:200j, -2:2:200j]z=(1/2*math.pi*3**2)*np.exp(-(x**2+y**2)/2*3**2)ax = plt.subplot(111, projection='3d')ax.plot_su

python画樱花

用python画简单的樱花 代码如下: import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, t): time.sleep(0.0005) if branch > 3: if 8 <= branch <= 12: if random.randint(0, 2) == 0: t.color('snow') # 白 else: t.color('lightcoral') # 淡珊瑚色 t.pe

PAT乙级 1065. 单身狗(25) by Python

1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行,每行给出一对夫妻/伴侣--为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔:之后给出一

用Python画一颗特别的心送给她

import numpy as np import matplotlib.pyplot as plt x_coords = np.linspace(-100, 100, 500) y_coords = np.linspace(-100, 100, 500) points = [] for y in y_coords: for x in x_coords: if ((x * 0.03) ** 2 + (y * 0.03) ** 2 - 1) ** 3 - (x * 0.03) ** 2 * (y