python有趣的简单代码_简单几步,100行代码用Python画一个蝙蝠侠的logo
轉自:菜鳥學Python
蝙蝠俠作為DC漫畫的核心人物之一,一直都受到廣大粉絲的喜愛,而筆者作為DC的鐵桿粉絲,自然也是老爺(粉絲對蝙蝠俠的昵稱)的支持者。今天,筆者就用Python來畫一個蝙蝠俠的logo,大概就是下圖這個樣子:
圖1. 蝙蝠俠的logo
這次作圖全程用matplotlib,IDE用的是Spyder,系統是Windows7
1).首先導入各種庫
2).然后設置一下畫圖板
圖片坐標系為X軸和Y軸都在0—100的范圍。patches變量后面會用到。
3).接下來再畫兩個橢圓
第一個橢圓是黃色的,寬64,高34,放在最下面,第二個是黑色的,寬60,高30,放在第一個橢圓之上,兩者的中心都是坐標為(50, 50)的點。
es1 = Ellipse([50, 50], width=64, height=34, facecolor='yellow', zorder=1)
es2 = Ellipse([50, 50], width=60, height=30, facecolor='black', zorder=2)
大概就是下面的效果。
圖2. 兩個橢圓的效果圖
然后畫出圖片左上部分的缺口,這部分用來顯示蝙蝠的頭部和翅膀。
這里我們用了3階貝賽爾曲線,Path的CURVE4方法就代表3階貝塞爾曲線,CURVE3則是2階。3階貝賽爾曲線需要4個坐標點,我們就設置好4個坐標點;
最后還要把這塊圖的邊線寬度設為0,否則會有黑色邊線出現影響效果。這個缺口圖設置為黃色
這樣就和下面的第一個橢圓的顏色一樣,就能產生缺口效果。
#lw是邊線寬度為0
大體效果如下圖。
圖3. 第一個缺口的效果圖
4).接下來再畫出圖片的第二個缺口
位于圖片左下方,這次我們用的是2階貝塞爾曲線,就是Path的CURVE3方法,這里需要3個坐標點。其他設置和patch1類似。大體效果如下。這里我們可以看到形成了一些不規則部分,不用擔心,后面會把這些不規則的地方去掉。
圖4. 第二個缺口的效果圖
5).畫第三個缺口
然后在左下方的第一個缺口旁邊再畫一個缺口,也就是本圖的第三個缺口。方法和上一個缺口類似,都是2階貝塞爾曲線,只是坐標點不同,其他都一樣。
第三個缺口形成的效果如下圖。
圖5. 第三個缺口的效果圖
至此,本圖基本上完成了一半,看到這里大家基本上可以看出蝙蝠標志的大概意思了,這就是蝙蝠的左翼,如果還沒明白的話,把右側再畫完,就可以看清楚了。因為蝙蝠標志是左右對稱的,所以我們只要在本圖的右側再依葫蘆畫瓢,對稱畫這幾個缺口就可以了。
6).對稱的畫出右邊部分
我們的坐標系是0至100的范圍,圖片中心坐標是(50, 50),所以右側缺口的所有x坐標為100減去左側缺口的對應x坐標的結果,所有y坐標不變。下面直接放上右側3個缺口的代碼,和左側是完全對應的,patch4是右上的缺口,patch5是右下邊最右側的缺口,patch6是右下邊靠中間的缺口。
#右下1
path_data5 ,path_data6都是類似的,完成兩翼的繪制之后,大體效果如下。
圖6. 完成兩翼后的效果圖
7).畫出頭部的效果
這時候看起來還不太像蝙蝠,倒有點像烤乳鴿,沒事再畫完蝙蝠頭部就OK了。蝙蝠頭的代碼如下,就是畫出一個倒立的梯形,上底邊長一些,下底邊短一些,用的是Path的MOVETO方法,需要設置四個坐標點。顏色還是黃色,邊線寬度還是0。
頭部效果如下圖所示。
圖7. 完成頭部后的效果圖
到這里整個蝙蝠俠logo的蝙蝠部分就畫完了,但是還有一些細節部分要處理一下:
比如再加個黑色邊框,然后再把不規則的部分去掉;
黑色邊框仍用一個橢圓,這個橢圓命名為es3,和第一個黃色橢圓大小一樣,但不填充,只設置邊線寬度為4,默認為黑色;
然后再畫一個橢圓es4,仍不填充,邊線寬度設置為10,設為白色,這樣就能把那些不規則的地方隱去;
代碼如下:
es3 = Ellipse([50, 50], width=64, height=34, fill=False, lw=4, zorder=2) #不填充,同時邊線寬度設置為4,默認為黑色
es4 = Ellipse([50, 50], width=68, height=38, fill=False, lw=10, edgecolor='white', zorder=2) #不填充,同時邊線寬度設置為10,邊線設為白色
最后的完成圖效果如下。
圖8. 完成效果圖
至此,一個蝙蝠俠的logo完全搞定,我們再放上一個猛男配色和一個藍色的logo,分別給蝙蝠女和羅賓,只需要把上面的黃色替換為粉色和藍色即可。蝙蝠家族就算完成了。
圖9. 蝙蝠女logo
圖10. 羅賓logo
Python還是很有趣的,真的是無所不能!除了爬蟲,數據分析,自動化測試,自動化辦公,后端網站開發,人工智能機器學習,現在還能做畫酷酷的畫。真的很少有一門語言能如此簡單而強大,學一門Python可以干好多事情,值了。
總結
以上是生活随笔為你收集整理的python有趣的简单代码_简单几步,100行代码用Python画一个蝙蝠侠的logo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android找不到符号_快速搭建And
- 下一篇: aop统计请求数量_Spring-Boo