欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過(guò)Python繪制中國(guó)結(jié)的示例代碼

 更新時(shí)間:2022年01月20日 09:44:35   作者:FrigidWinter  
再過(guò)不久就要到新年了,所以這篇文章將為大家介紹一下如何通過(guò)Python代碼繪制一個(gè)中國(guó)結(jié),文中的示例代碼講解詳細(xì),感興趣的可以動(dòng)手試一試

1 中國(guó)結(jié)的組成部分

中國(guó)結(jié)是一種手工編織工藝品,它身上所顯示的情致與智慧正是漢族古老文明中的一個(gè)側(cè)面。因?yàn)槠渫庥^對(duì)稱(chēng)精致,可以代表漢族悠久的歷史,符合中國(guó)傳統(tǒng)裝飾的習(xí)俗和審美觀念,故命名為中國(guó)結(jié)。中國(guó)結(jié)代表著團(tuán)結(jié)幸福平安,特別是在民間,它精致的做工深受大眾的喜愛(ài)。其主要組成部分如下圖所示。

2 設(shè)計(jì)中國(guó)結(jié)對(duì)象

基于Python Turtle庫(kù)實(shí)現(xiàn)繪制,首先設(shè)計(jì)一個(gè)中國(guó)結(jié)對(duì)象,畫(huà)筆顏色就選擇中國(guó)紅。再定義一個(gè)__goto()函數(shù)封裝turtle庫(kù)對(duì)畫(huà)筆移動(dòng)的操作。

import turtle as t

class chineseKnot:
? '''
? * @breif: 中國(guó)結(jié)
? ''' ?
? def __init__(self) -> None:
? ? # 畫(huà)筆初始化
? ? self.t = t
? ? self.t.pensize(10)
? ? self.t.setup(700, 700)
? ? self.t.pencolor("red")
? ? self.t.speed(14)
? ? # 結(jié)心坐標(biāo)
? ? self.x = 0
? ? self.y = 200
? ??
? '''
? * @breif: 畫(huà)筆移動(dòng)到指定位置
? * @param[in]: x -> 畫(huà)筆移動(dòng)位置橫坐標(biāo)
? * @param[in]: y -> 畫(huà)筆移動(dòng)位置縱坐標(biāo)
? * @retval: None
? ''' ?
? def __goto(self, x: int, y: int) -> None:
? ? self.t.penup()
? ? self.t.goto(x,y)
? ? self.t.pendown()

3 繪制結(jié)體

def drawBody(self) -> None:
    for i in range(11):
        self.__goto(self.x - i * 10 * sqrt(2), self.y - i * 10 * sqrt(2))
        self.t.seth(-45)
        self.t.fd(200)
        self.__goto(self.x + i * 10 * sqrt(2), self.y - i * 10 * sqrt(2))
        self.t.seth(-135)
        self.t.fd(200)

4 繪制耳翼

def drawEdge(self) -> None:
? ? for i in range(4):
? ? ? # 左上角
? ? ? self.__goto(-10 * sqrt(2) - i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 10 * sqrt(2) - i * 20 * sqrt(2))
? ? ? self.t.seth(135)
? ? ? self.t.fd(20)
? ? ? self.t.circle(10, 180)
? ? ? self.t.fd(20)

? ? ? # 右上角
? ? ? self.__goto(10 * sqrt(2) + i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 10 * sqrt(2) - i * 20 * sqrt(2))
? ? ? self.t.seth(45)
? ? ? self.t.fd(20)
? ? ? self.t.circle(-10, 180)
? ? ? self.t.fd(20)

? ? ? # 左下角
? ? ? self.__goto(-10 * sqrt(2) - i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 190 * sqrt(2) + i * 20 * sqrt(2))
? ? ? self.t.seth(-135)
? ? ? self.t.fd(20)
? ? ? self.t.circle(-10, 180)
? ? ? self.t.fd(20)
? ? ? ?
? ? ? # 右下角
? ? ? self.__goto(10 * sqrt(2) + i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 190 * sqrt(2) + i * 20 * sqrt(2))
? ? ? self.t.seth(-45)
? ? ? self.t.fd(20)
? ? ? self.t.circle(10, 180)
? ? ? self.t.fd(20)

? ? # 左側(cè)
? ? self.t.seth(-45)
? ? self.__goto(90 * sqrt(2), 200 - 110 * sqrt(2)) ?
? ? self.t.circle(20,270)
? ? self.__goto(-90 * sqrt(2), 200 - 110 * sqrt(2))
? ? self.t.circle(-20,270)
? ??
? ? # 右側(cè)
? ? self.__goto(80 * sqrt(2), 200 - 120 * sqrt(2))
? ? self.t.circle(40,270)
? ? self.__goto(-80 * sqrt(2), 200 - 120 * sqrt(2))
? ? self.t.circle(-40,270)

5 繪制掛耳和流蘇

def drawAdorn(self):
? ? # 上側(cè)
? ? self.__goto(self.x, self.y)
? ? self.t.pensize(14)
? ? self.t.seth(90)
? ? self.t.fd(60)
? ? self.__goto(0,320)
? ? self.t.seth(180)
? ? self.t.circle(30,360)
? ? # 下側(cè)
? ? self.__goto(0,200 - 200 * sqrt(2))
? ? self.t.pensize(40)
? ? self.t.seth(-90)
? ? self.t.fd(20)
? ? self.t.pensize(2)
? ? for i in range(11):
? ? ? ? self.__goto(-20 + 4 * i, 200 - 200 * sqrt(2))
? ? ? ? self.t.seth(-90)
? ? ? ? self.t.fd(200)

6 完整代碼,一鍵運(yùn)行

import turtle as t
from math import sqrt

class chineseKnot:
? '''
? * @breif: 中國(guó)結(jié)
? ''' ?
? def __init__(self) -> None:
? ? # 畫(huà)筆初始化
? ? self.t = t
? ? self.t.pensize(10)
? ? self.t.setup(700, 700)
? ? self.t.pencolor("red")
? ? self.t.speed(14)
? ? # 結(jié)心坐標(biāo)
? ? self.x = 0
? ? self.y = 200

? '''
? * @breif: 畫(huà)中國(guó)結(jié)
? * @param[in]: None
? * @retval: None
? '''
? def drawKnot(self) -> None:
? ? self.drawBody()
? ? self.drawEdge()
? ? self.drawAdorn()
? ? self.t.hideturtle()
? ? self.t.done()

? '''
? * @breif: 畫(huà)中國(guó)結(jié)主體部分
? * @param[in]: None
? * @retval: None
? '''
? def drawBody(self) -> None:
? ? for i in range(11):
? ? ? ? self.__goto(self.x - i * 10 * sqrt(2), self.y - i * 10 * sqrt(2))
? ? ? ? self.t.seth(-45)
? ? ? ? self.t.fd(200)
? ? ? ? self.__goto(self.x + i * 10 * sqrt(2), self.y - i * 10 * sqrt(2))
? ? ? ? self.t.seth(-135)
? ? ? ? self.t.fd(200)

? '''
? * @breif: 畫(huà)中國(guó)結(jié)邊緣部分
? * @param[in]: None
? * @retval: None
? ''' ? ? ??
? def drawEdge(self) -> None:
? ? for i in range(4):
? ? ? # 左上角
? ? ? self.__goto(-10 * sqrt(2) - i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 10 * sqrt(2) - i * 20 * sqrt(2))
? ? ? self.t.seth(135)
? ? ? self.t.fd(20)
? ? ? self.t.circle(10, 180)
? ? ? self.t.fd(20)

? ? ? # 右上角
? ? ? self.__goto(10 * sqrt(2) + i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 10 * sqrt(2) - i * 20 * sqrt(2))
? ? ? self.t.seth(45)
? ? ? self.t.fd(20)
? ? ? self.t.circle(-10, 180)
? ? ? self.t.fd(20)

? ? ? # 左下角
? ? ? self.__goto(-10 * sqrt(2) - i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 190 * sqrt(2) + i * 20 * sqrt(2))
? ? ? self.t.seth(-135)
? ? ? self.t.fd(20)
? ? ? self.t.circle(-10, 180)
? ? ? self.t.fd(20)
? ? ? ?
? ? ? # 右下角
? ? ? self.__goto(10 * sqrt(2) + i * 20 * sqrt(2),
? ? ? ? ? ? ? ? ? 200 - 190 * sqrt(2) + i * 20 * sqrt(2))
? ? ? self.t.seth(-45)
? ? ? self.t.fd(20)
? ? ? self.t.circle(10, 180)
? ? ? self.t.fd(20)

? ? # 左側(cè)
? ? self.t.seth(-45)
? ? self.__goto(90 * sqrt(2), 200 - 110 * sqrt(2)) ?
? ? self.t.circle(20,270)
? ? self.__goto(-90 * sqrt(2), 200 - 110 * sqrt(2))
? ? self.t.circle(-20,270)
? ??
? ? # 右側(cè)
? ? self.__goto(80 * sqrt(2), 200 - 120 * sqrt(2))
? ? self.t.circle(40,270)
? ? self.__goto(-80 * sqrt(2), 200 - 120 * sqrt(2))
? ? self.t.circle(-40,270)

? '''
? * @breif: 畫(huà)中國(guó)結(jié)裝飾部分
? * @param[in]: None
? * @retval: None
? ''' ?
? def drawAdorn(self):
? ? # 上側(cè)
? ? self.__goto(self.x, self.y)
? ? self.t.pensize(14)
? ? self.t.seth(90)
? ? self.t.fd(60)
? ? self.__goto(0,320)
? ? self.t.seth(180)
? ? self.t.circle(30,360)
? ? # 下側(cè)
? ? self.__goto(0,200 - 200 * sqrt(2))
? ? self.t.pensize(40)
? ? self.t.seth(-90)
? ? self.t.fd(20)
? ? self.t.pensize(2)
? ? for i in range(11):
? ? ? ? self.__goto(-20 + 4 * i, 200 - 200 * sqrt(2))
? ? ? ? self.t.seth(-90)
? ? ? ? self.t.fd(200)

? '''
? * @breif: 畫(huà)筆移動(dòng)到指定位置
? * @param[in]: x -> 畫(huà)筆移動(dòng)位置橫坐標(biāo)
? * @param[in]: y -> 畫(huà)筆移動(dòng)位置縱坐標(biāo)
? * @retval: None
? ''' ?
? def __goto(self, x: int, y: int) -> None:
? ? self.t.penup()
? ? self.t.goto(x,y)
? ? self.t.pendown()
? ? ? ??
if __name__ == '__main__':
? knot = chineseKnot()
? knot.drawKnot()

到此這篇關(guān)于通過(guò)Python繪制中國(guó)結(jié)的示例代碼的文章就介紹到這了,更多相關(guān)Python繪制中國(guó)結(jié)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 獲取計(jì)算機(jī)的網(wǎng)卡信息

    python 獲取計(jì)算機(jī)的網(wǎng)卡信息

    這篇文章主要介紹了python 獲取計(jì)算機(jī)的網(wǎng)卡信息的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2021-02-02
  • 通過(guò)Python 獲取Android設(shè)備信息的輕量級(jí)框架

    通過(guò)Python 獲取Android設(shè)備信息的輕量級(jí)框架

    今天跟大家分享一下,如何通過(guò)Python實(shí)現(xiàn)一個(gè)輕量級(jí)的庫(kù)來(lái)獲取電腦上連接的Android設(shè)備信息,需要的朋友參考下吧
    2017-12-12
  • Python實(shí)現(xiàn)比較撲克牌大小程序代碼示例

    Python實(shí)現(xiàn)比較撲克牌大小程序代碼示例

    這篇文章主要介紹了Python實(shí)現(xiàn)比較撲克牌大小程序代碼示例,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • 基于Python制作簡(jiǎn)單的音樂(lè)播放器

    基于Python制作簡(jiǎn)單的音樂(lè)播放器

    這篇文章主要為大家詳細(xì)介紹了如何基于Python制作簡(jiǎn)單的音樂(lè)播放器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以了解下
    2024-02-02
  • python判斷文件夾內(nèi)是否存在指定后綴文件的實(shí)例

    python判斷文件夾內(nèi)是否存在指定后綴文件的實(shí)例

    今天小編就為大家分享一篇python判斷文件夾內(nèi)是否存在指定后綴文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • pycharm中下載的包但是import還是無(wú)法使用/報(bào)紅的解決方法

    pycharm中下載的包但是import還是無(wú)法使用/報(bào)紅的解決方法

    用pycharm開(kāi)發(fā)時(shí),在導(dǎo)入自己寫(xiě)的python文件時(shí)出現(xiàn)模塊名爆紅的情況,下面這篇文章主要給大家介紹了關(guān)于pycharm中下載包但是import還是無(wú)法使用/報(bào)紅的解決方法,需要的朋友可以參考下
    2023-02-02
  • python中urlparse模塊介紹與使用示例

    python中urlparse模塊介紹與使用示例

    這篇文章主要給大家介紹了關(guān)于python中urlparse模塊介紹與使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Python面向?qū)ο缶幊讨庋b的藝術(shù)你了解嗎

    Python面向?qū)ο缶幊讨庋b的藝術(shù)你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Python面向?qū)ο缶幊讨庋b的藝術(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • Python 高效編程技巧分享

    Python 高效編程技巧分享

    工作中經(jīng)常要處理各種各樣的數(shù)據(jù),遇到項(xiàng)目趕進(jìn)度的時(shí)候自己寫(xiě)函數(shù)容易浪費(fèi)時(shí)間。Python 中有很多內(nèi)置函數(shù)幫你提高工作效率。
    2020-09-09
  • 詳解Python程序與服務(wù)器連接的WSGI接口

    詳解Python程序與服務(wù)器連接的WSGI接口

    這篇文章主要介紹了Python程序與服務(wù)器連接的WSGI接口,是Python網(wǎng)絡(luò)編程學(xué)習(xí)當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評(píng)論