Python怎樣實(shí)現(xiàn)不規(guī)則圖形填充的思路-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Python怎樣實(shí)現(xiàn)不規(guī)則圖形填充的思路,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

我們一直強(qiáng)調(diào)網(wǎng)站建設(shè)、做網(wǎng)站對(duì)于企業(yè)的重要性,如果您也覺(jué)得重要,那么就需要我們慎重對(duì)待,選擇一個(gè)安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過(guò)程中的有力推手。專業(yè)網(wǎng)站設(shè)計(jì)公司不一定是大公司,創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

核心思想:點(diǎn)動(dòng)成線,線動(dòng)成面。

以下圖為例,要求填充扇子的扇面部分。

Python怎樣實(shí)現(xiàn)不規(guī)則圖形填充的思路

一、繪制扇子:

首先要弄清楚它的結(jié)構(gòu),即能夠用代碼把扇子繪制出來(lái)。(只有先把不規(guī)則圖形的結(jié)構(gòu)分析清楚,才能進(jìn)一步填充它。)

先畫(huà)一個(gè)框架:

#調(diào)用的庫(kù)
import math
import numpy as np
import matplotlib.pyplot as plt
#畫(huà)圖的基礎(chǔ)設(shè)置
fig = plt.figure(1)
ax = fig.add_subplot(111)
plt.axis('off')
plt.axis('equal')
#畫(huà)框架線條

#畫(huà)兩條圓弧
theta = np.arange(0.5*np.pi,np.pi,0.01)
for i in range(3):
  x = i * np.cos(theta)
  y = i * np.sin(theta)
  ax.plot(x,y,color='black',linewidth=0.7)
#畫(huà)兩條主扇骨
z = np.arange(0,2,0.01)
ax.plot(z * math.cos(math.pi/2), z * math.sin(math.pi/2), color='black',linewidth=0.7)
ax.plot(z * math.cos(math.pi), z * math.sin(math.pi), color='black',linewidth=0.7)

如圖:

Python怎樣實(shí)現(xiàn)不規(guī)則圖形填充的思路

再把扇子細(xì)節(jié)部分畫(huà)出來(lái):

#畫(huà)10根扇骨
z = np.arange(0,1,0.01)
for i in range(11):
  ax.plot(z * math.cos(math.pi/2+i/10*math.pi/2), z * math.sin(math.pi/2+i/10*math.pi/2), color='black',linewidth=0.7)
#扇面分割為20小份
z = np.arange(1,2,0.01)
for i in range(0,21):
  ax.plot(z * math.cos(math.pi/2+i/20*math.pi/2), z * math.sin(math.pi/2+i/20*math.pi/2), color='black',linewidth=0.7)

這樣就可以得到最開(kāi)始的“素扇子”。

至此,我們也弄清了扇子的“數(shù)據(jù)”,扇面部分取1/4圓,扇骨部分通過(guò)np.arange()函數(shù),把步長(zhǎng)設(shè)置為0.01即可以創(chuàng)建一條半徑,然后通過(guò)角度的正余弦變化構(gòu)建扇骨,從而繪制出整個(gè)扇子。

二、填充扇子:

思路:如果兩根扇骨的距離足夠小,小到人眼難以分辨,當(dāng)不同顏色的扇骨鋪滿扇面,就可以實(shí)現(xiàn)扇面的顏色填充。

#涂顏色
#選取一個(gè)涂色卡
color = ['#cde8f3','#91cfc9','#6bb3c0','#4198b9','#1e5670',
    '#2d4e76','#99bcdd','#c4e5ef','#f3fafa','#bbabd0',
    '#a16e8a','#643f5a','#cfbeb7','#f1ead7','#e99a9a',
    '#e67b79','#f7cece','#eec9bc','#e1f1ea','#91c7c2']

#點(diǎn)動(dòng)成線
z = np.arange(1.005, 2, 0.01)#邊緣修正0.005,露出扇子輪廓

#線動(dòng)成面
I = np.arange(0,20,0.01)
for i in I:
  ax.plot(z * math.cos(math.pi/2+i/20*math.pi/2), z * math.sin(math.pi/2+i/20*math.pi/2), color=color[int(i)],linewidth=0.7,alpha=0.5)

如圖所示:

Python怎樣實(shí)現(xiàn)不規(guī)則圖形填充的思路

關(guān)于“Python怎樣實(shí)現(xiàn)不規(guī)則圖形填充的思路”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

文章名稱:Python怎樣實(shí)現(xiàn)不規(guī)則圖形填充的思路-創(chuàng)新互聯(lián)
文章來(lái)源:http://muchs.cn/article24/djisje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、虛擬主機(jī)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化