溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Python+Turtle繪制航海王草帽路飛

發(fā)布時(shí)間:2022-03-10 14:21:42 來(lái)源:億速云 閱讀:414 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“怎么用Python+Turtle繪制航海王草帽路飛”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“怎么用Python+Turtle繪制航海王草帽路飛”文章吧。

一、程序運(yùn)行

1.效果展示 - 輪廓描繪

看輪廓描繪效果:

怎么用Python+Turtle繪制航海王草帽路飛

2.效果展示 - 顏色填充

衣服和褲子顏色填充效果:

怎么用Python+Turtle繪制航海王草帽路飛

二、實(shí)現(xiàn)過(guò)程

1.繪圖數(shù)據(jù)下載

獲取地址

內(nèi)容預(yù)覽:

怎么用Python+Turtle繪制航海王草帽路飛

2.海龜繪圖配置項(xiàng)

降低刷新率可提升繪制速度,值越大刷新頻率越低,速度越快

t.tracer(5000)

def set_trutle():
    '''
     作用:海龜繪圖配置項(xiàng)
     參數(shù):無(wú)
     返回:無(wú)
    '''
    # 默認(rèn)顏色區(qū)間是[0,1],切換為[0,255]
    t.Screen().colormode(255)
    # 設(shè)置起始大小
    t.setup(width=x, height=y)
    # 調(diào)整坐標(biāo),
    t.setworldcoordinates(0,y,x,0)
    t.pen()
    # 設(shè)置繪制速度,0為最快
    t.speed(0)
    # 禁用延遲提升速度
    t.delay(0)
    # 提升速度,值越大越快
    t.tracer(5000)
    # 設(shè)置默認(rèn)畫(huà)筆顏色為白色
    t.pencolor((255,255,255))
    # 抬起畫(huà)筆
    t.penup()

3.輪廓繪制

通過(guò)下落畫(huà)筆 t.pendown()

和抬起畫(huà)筆 t.penup()

來(lái)避免連線問(wèn)題。

def draw_lufei_outline():
    '''
     作用:繪制路飛輪廓
     參數(shù):無(wú)
     返回:無(wú)
    '''
    
    # 數(shù)據(jù)文件讀取
    f=open("lufei.txt","r")
    bigmom_date = f.read().split(" ")
    
    for i in bigmom_date:
        try:
            # 數(shù)據(jù)分離與轉(zhuǎn)化
            j = i.split("_")
            x1 = round(float(j[0]))
            y1 = round(float(j[1]))
            color = j[2][1:-1].split(",")
            color[0]=int(color[0])
            color[1]=int(color[1])
            color[2]=int(color[2])
            
            if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>50):
                color = (255,255,255);
            
            # 下落畫(huà)筆
            t.pendown()
            # 解決圖像只繪制一半的問(wèn)題
            t.sety(y1)
            # 軌跡追蹤與繪制
            t.goto(x1, y1)
            t.color(color)
            # 抬起畫(huà)筆
            t.penup()
        except Exception as e:
            print()
            
    f.close()
    print("輪廓繪制完成")

效果圖演示:

怎么用Python+Turtle繪制航海王草帽路飛

4.顏色填充:衣服、褲子

繪制衣服、褲子的紅色和藍(lán)色。

def draw_lufei_tintage1():
    '''
     作用:路飛顏色填充:衣服、帽子
     參數(shù):無(wú)
     返回:無(wú)
    '''
    
    # 數(shù)據(jù)文件讀取
    f=open("lufei.txt","r")
    bigmom_date = f.read().split(" ")
    
    for i in bigmom_date:
        try:
            # 數(shù)據(jù)分離與轉(zhuǎn)化
            j = i.split("_")
            x1 = int(j[0])
            y1 = int(j[1])

            color = j[2][1:-1].split(",")
            color[0]=int(color[0])
            color[1]=int(color[1])
            color[2]=int(color[2])
            
            if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>150):
                color = (255,255,255);
                
            # 下落畫(huà)筆
            t.pendown()
            # 解決圖像只繪制一半的問(wèn)題
            t.sety(y1)
            # 軌跡追蹤與繪制
            t.goto(x1, y1)
            t.color(color)
            # 抬起畫(huà)筆
            t.penup()
        except Exception as e:
            print()
            
    f.close()
    print("上色完成")

效果圖演示:

怎么用Python+Turtle繪制航海王草帽路飛

5.顏色填充:草帽、腰帶

繪制草帽、腰帶的黃色。

def draw_lufei_tintage2():
    '''
     作用:路飛顏色填充:草帽、腰帶
     參數(shù):無(wú)
     返回:無(wú)
    '''
    
    # 數(shù)據(jù)文件讀取
    f=open("lufei.txt","r")
    bigmom_date = f.read().split(" ")
    
    for i in bigmom_date:
        try:
            # 數(shù)據(jù)分離與轉(zhuǎn)化
            j = i.split("_")
            x1 = int(j[0])
            y1 = int(j[1])

            color = j[2][1:-1].split(",")
            color[0]=int(color[0])
            color[1]=int(color[1])
            color[2]=int(color[2])
            
            if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>215):
                color = (255,255,255);
                
            # 下落畫(huà)筆
            t.pendown()
            # 解決圖像只繪制一半的問(wèn)題
            t.sety(y1)
            # 軌跡追蹤與繪制
            t.goto(x1, y1)
            t.color(color)
            # 抬起畫(huà)筆
            t.penup()
        except Exception as e:
            print()
            
    f.close()
    print("上色完成")

效果圖演示:

怎么用Python+Turtle繪制航海王草帽路飛

6.完整源碼

# -*- coding:utf-8 -*-
# 2022-3-9
# 作者:小藍(lán)棗
# 圖像繪制:路飛

import turtle as t
import time

x = 224
y = 345

def set_trutle():
    '''
     作用:海龜繪圖配置項(xiàng)
     參數(shù):無(wú)
     返回:無(wú)
    '''
    # 默認(rèn)顏色區(qū)間是[0,1],切換為[0,255]
    t.Screen().colormode(255)
    # 設(shè)置起始大小
    t.setup(width=x, height=y)
    # 調(diào)整坐標(biāo),
    t.setworldcoordinates(0,y,x,0)
    t.pen()
    # 設(shè)置繪制速度,0為最快
    t.speed(0)
    # 禁用延遲提升速度
    t.delay(0)
    # 提升速度,值越大越快
    t.tracer(5000)
    # 設(shè)置默認(rèn)畫(huà)筆顏色為白色
    t.pencolor((255,255,255))
    # 抬起畫(huà)筆
    t.penup()

def draw_lufei_outline():
    '''
     作用:繪制路飛輪廓
     參數(shù):無(wú)
     返回:無(wú)
    '''
    
    # 數(shù)據(jù)文件讀取
    f=open("lufei.txt","r")
    bigmom_date = f.read().split(" ")
    
    for i in bigmom_date:
        try:
            # 數(shù)據(jù)分離與轉(zhuǎn)化
            j = i.split("_")
            x1 = round(float(j[0]))
            y1 = round(float(j[1]))
            color = j[2][1:-1].split(",")
            color[0]=int(color[0])
            color[1]=int(color[1])
            color[2]=int(color[2])
            
            if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>50):
                color = (255,255,255);
            
            # 下落畫(huà)筆
            t.pendown()
            # 解決圖像只繪制一半的問(wèn)題
            t.sety(y1)
            # 軌跡追蹤與繪制
            t.goto(x1, y1)
            t.color(color)
            # 抬起畫(huà)筆
            t.penup()
        except Exception as e:
            print()
            
    f.close()
    print("輪廓繪制完成")
    
def draw_lufei_tintage1():
    '''
     作用:路飛顏色填充:衣服、帽子
     參數(shù):無(wú)
     返回:無(wú)
    '''
    
    # 數(shù)據(jù)文件讀取
    f=open("lufei.txt","r")
    bigmom_date = f.read().split(" ")
    
    for i in bigmom_date:
        try:
            # 數(shù)據(jù)分離與轉(zhuǎn)化
            j = i.split("_")
            x1 = int(j[0])
            y1 = int(j[1])

            color = j[2][1:-1].split(",")
            color[0]=int(color[0])
            color[1]=int(color[1])
            color[2]=int(color[2])
            
            if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>150):
                color = (255,255,255);
                
            # 下落畫(huà)筆
            t.pendown()
            # 解決圖像只繪制一半的問(wèn)題
            t.sety(y1)
            # 軌跡追蹤與繪制
            t.goto(x1, y1)
            t.color(color)
            # 抬起畫(huà)筆
            t.penup()
        except Exception as e:
            print()
            
    f.close()
    print("上色完成")
    
def draw_lufei_tintage2():
    '''
     作用:路飛顏色填充:草帽、腰帶
     參數(shù):無(wú)
     返回:無(wú)
    '''
    
    # 數(shù)據(jù)文件讀取
    f=open("lufei.txt","r")
    bigmom_date = f.read().split(" ")
    
    for i in bigmom_date:
        try:
            # 數(shù)據(jù)分離與轉(zhuǎn)化
            j = i.split("_")
            x1 = int(j[0])
            y1 = int(j[1])

            color = j[2][1:-1].split(",")
            color[0]=int(color[0])
            color[1]=int(color[1])
            color[2]=int(color[2])
            
            if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>215):
                color = (255,255,255);
                
            # 下落畫(huà)筆
            t.pendown()
            # 解決圖像只繪制一半的問(wèn)題
            t.sety(y1)
            # 軌跡追蹤與繪制
            t.goto(x1, y1)
            t.color(color)
            # 抬起畫(huà)筆
            t.penup()
        except Exception as e:
            print()
            
    f.close()
    print("上色完成")

set_trutle()
draw_lufei_outline()
draw_lufei_tintage1()
draw_lufei_tintage2()
time.sleep(10000)

以上就是關(guān)于“怎么用Python+Turtle繪制航海王草帽路飛”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI