Python學習之turtle繪圖篇


畫一個紅色的五角星

from turtle import *
color('red','red')
begin_fill()
for i in range(5):
    fd(200)
    rt(144)

end_fill()
done()

效果圖:

畫一條蟒蛇

#PythonDraw.py
import turtle
#turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)

效果圖:

畫一組內切圓

import turtle
turtle.pensize(2)
turtle.circle(10)
turtle.circle(40)
turtle.circle(80)
turtle.circle(120)

效果圖:

畫一個社會人小豬佩奇,代碼是借鑒某位大佬的

from turtle import *
def nose(x,y):
    pu()
    goto(x,y)
    pd()
    seth(-30)
    begin_fill()
    a=0.4
    for i in range(120):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            lt(3)
            fd(a)
        else:
            a=a-0.08
            lt(3)
            fd(a)
    end_fill()

    pu()
    seth(90)
    fd(25)
    seth(0)
    fd(10)
    pd()
    pencolor(255,155,192)
    seth(10)
    begin_fill()
    circle(5)
    color(160,82,45)
    end_fill()

    pu()
    seth(0)
    fd(20)
    pd()
    pencolor(255,155,192)
    seth(10)
    begin_fill()
    circle(5)
    color(160,82,45)
    end_fill()

def head(x,y):
    color((255,155,192),"pink")
    pu()
    goto(x,y)
    seth(0)
    pd()
    begin_fill()
    seth(180)
    circle(300,-30)
    circle(100,-60)
    circle(80,-100)
    circle(150,-20)
    circle(60,-95)
    seth(161)
    circle(-300,15)
    pu()
    goto(-100,100)
    pd()
    seth(-30)
    a=0.4
    for i in range(60):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            lt(3)
            fd(a)
        else:
            a=a-0.08
            lt(3)
            fd(a)
    end_fill()

def ears(x,y):
    color((255,155,192),"pink")
    pu()
    goto(x,y)
    pd()
    begin_fill()
    seth(100)
    circle(-50,50)
    circle(-10,120)
    circle(-50,54)
    end_fill()

    pu()
    seth(90)
    fd(-12)
    seth(0)
    fd(30)
    pd()
    begin_fill()
    seth(100)
    circle(-50,50)
    circle(-10,120)
    circle(-50,56)
    end_fill()

def eyes(x,y):
    color((255,155,192),"white")
    pu()
    seth(90)
    fd(-20)
    seth(0)
    fd(-95)
    pd()
    begin_fill()
    circle(15)
    end_fill()

    color("black")
    pu()
    seth(90)
    fd(12)
    seth(0)
    fd(-3)
    pd()
    begin_fill()
    circle(3)
    end_fill()

    color((255,155,192),"white")
    pu()
    seth(90)
    fd(-25)
    seth(0)
    fd(40)
    pd()
    begin_fill()
    circle(15)
    end_fill()

    color("black")
    pu()
    seth(90)
    fd(12)
    seth(0)
    fd(-3)
    pd()
    begin_fill()
    circle(3)
    end_fill()

def cheek(x,y):
    color((255,155,192))
    pu()
    goto(x,y)
    pd()
    seth(0)
    begin_fill()
    circle(30)
    end_fill()

def mouth(x,y):
    color(239,69,19)
    pu()
    goto(x,y)
    pd()
    seth(-80)
    circle(30,40)
    circle(40,80)

def body(x,y):
    color("red",(255,99,71))
    pu()
    goto(x,y)
    pd()
    begin_fill()
    seth(-130)
    circle(100,10)
    circle(300,30)
    seth(0)
    fd(230)
    seth(90)
    circle(300,30)
    circle(100,3)
    color((255,155,192),(255,100,100))
    seth(-135)
    circle(-80,63)
    circle(-150,24)
    end_fill()

def hands(x,y):
    color((255,155,192))
    pu()
    goto(x,y)
    pd()
    seth(-160)
    circle(300,15)
    pu()
    seth(90)
    fd(15)
    seth(0)
    fd(0)
    pd()
    seth(-10)
    circle(-20,90)

    pu()
    seth(90)
    fd(30)
    seth(0)
    fd(237)
    pd()
    seth(-20)
    circle(-300,15)
    pu()
    seth(90)
    fd(20)
    seth(0)
    fd(0)
    pd()
    seth(-170)
    circle(20,90)

def foot(x,y):
    pensize(10)
    color((240,128,128))
    pu()
    goto(x,y)
    pd()
    seth(-90)
    fd(40)
    seth(-180)
    color("black")
    pensize(15)
    fd(20)

    pensize(10)
    color((240,128,128))
    pu()
    seth(90)
    fd(40)
    seth(0)
    fd(90)
    pd()
    seth(-90)
    fd(40)
    seth(-180)
    color("black")
    pensize(15)
    fd(20)

def tail(x,y):
    pensize(4)
    color((255,155,192))
    pu()
    goto(x,y)
    pd()
    seth(0)
    circle(70,20)
    circle(10,330)
    circle(70,30)
    
    
def setting():
    pensize(4)
    hideturtle()
    colormode(255)
    color((255,155,192),"pink")
    setup(840,500)
    speed(10)

def main():
    setting()
    nose(-100,100)
    head(-69,167)
    ears(0,160)
    eyes(0,140)
    cheek(80,10)
    mouth(-20,30)
    body(-32,-8)
    hands(-56,-45)
    foot(2,-177)
    tail(148,-155)
    done()

main()
            

效果極佳:

簡單總結一下好了,其實turtle庫還是非常有用的,以后可以畫張很有創意的圖片去表白女神了,講不好那天就用上了呢:

顯示器和turtle窗體的左上角都是原點
turtle.setup(width,height,startx,starty)設置窗體大小及位置,后面兩個參數可選,非必需
空間坐標:絕對坐標:右方向x軸,上方向為y軸,正中心為原點,turtle.goto(x,y)讓在任何位置的海龜到達指定的位置
海龜坐標:turtle.fd(d)海龜向前行多少像素
turtle.bk(d)向海龜的反方向運行
turtle.circle(r,angle)以海龜左邊的某一點為圓心進行曲線運行
角度坐標:絕對角度:turtle.seth(angle)angle為絕對度數,表示改變海龜的運行方向
海龜角度:turtle.right(angle),turtle.left(angle)改變海龜的運行方向
RGB體系:turtle.colormode(mode)mode=1.0則改用0和1表示,mode=255則改用255和0表示,默認為小數
庫引用:import <庫名>,from <庫名> import *或者from <庫名> import <函數名>,import <庫名> as <庫別名>
畫筆控制函數:turtle.penup()別名:turtle.pu()抬起畫筆,turtle.pendown()別名:turtle.pd()落下畫筆,turtle.pensize(width)別名:turtle.width(width)設置畫筆寬度,turtle.pencolor(color)設置畫筆顏色,color有三種方式,顏色字符串,或者RGB小數值,或者RGB元組值,例如:turtle.pencolor((0.63,0.13,0.94))
運動控制函數:turtle.circle(r,angle),r(海龜左方向)表示半徑,angle表示繪制的角度,默認是360度
方向控制函數:turtle.seth(angle)改變海龜的行進方向,順時針轉向

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM