程序員式優雅表白,教你用python代碼畫愛心

還能用python代碼畫愛心?還有這種操做?這是什麼原理?python

不相信python代碼能夠畫愛心?先來一張效果圖來看看效果吧!app

用python代碼畫愛心的思路是怎樣的?

一、怎麼畫心形曲線函數

二、怎麼填滿心形曲線測試

三、怎麼用 python 畫出愛心spa

接下來看好了,滿滿的都是乾貨,不收藏將是遺憾哦!code

第一:怎麼畫心形曲線

這個最難的部分,前人已將大樹栽好,咱們只要記住公式,便可在大樹下乘涼哦!ci

今天咱們選用中上的那個圖形,一塊兒來看看吧!it

第二:怎樣填滿愛心曲線?

簡單說:函數=0 是一根線, 那線的左邊跟右邊就是大於 0 跟小於 0.class

取x, y = 0 , 發現 函數 <=0 是成立的,先試試!import

第三:怎麼用 python 畫出愛心?

咱們先測試一下公式:, 把公式放到 python 中, 藉助 sympy 這個庫,確認這個公式是否可行。

from sympy import var, plot_implicit var('x y ') plot_implicit((x**2+(-y)**2-1)**3+x**2*(-y)**3)

效果以下圖所示:(好像還不錯哦)。

咱們把一行畫心的代碼解析一下,是這樣:

l2=[] # 將縱向每一個字符看成 y 座標的刻度 for y in range(15,-15,-1): l3 = [] # 將橫向每一個字符看成 x 座標的刻度 for x in range(-30,30): # 若是 x,y 點在心形內,則將一個字符加入到行,不然加入空字符 l3.append((' I love U'[(x-y)%9]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')) l2.append(''.join(l3)) l1 ='\n'.join(l2) for i in l1:  print("\033[91m"+i,end="",flush=True) 

下面這段代碼,是否是跟咱們用的公式很像, 只不過作了 x y 軸的縮放:

((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0

下面這段代碼的意思是:從 ' I love U' 裏挑字符出來拼行. 爲毛 x-y ? 只爲了斜一點, 但要求是保證它的增速爲 1 . 你用 x 也行 但畫出來就是耿直的 I love U了。

' I love U'[(x-y)%9]

咱們只須要將字符看成座標刻度。去填滿 便可!

最後就是 print 控制顏色:

\033[91m

基本就這樣,有興趣的同窗能夠將畫心的函數都試一下.理論上均可以畫出來。 只不過有一些是極座標,要作一些轉換才行。

相關文章
相關標籤/搜索