python繪制神器五角星+小黃人+櫻花
前言
這期文章我就為大傢介紹關於python的藝術美——畫圖神器
在數學中有一種美,叫幾何美,我們又稱為藝術美,用具有規律的線條,迭代出美麗的圖片,這就是許多藝術傢在創作是的靈感渠道。下面我們就為大傢準備瞭一個簡單的五角星繪制。
涉及第三庫的導入,模塊的導入,還有一些我想我現在也介紹不完,下面就讓我們一起來領略美感吧!
繪制五角星
import turtle def draw_recursive_pentargram(size): ''' 迭代繪制五角星 ''' count = 1 while count <= 5: turtle.backward(size) turtle.right(144) count += 1 # 五角星繪制完成,更新參數 size += 10 if size <= 100: draw_recursive_pentargram(size) def main(): ''' 主函數 ''' turtle.speed(0) # turtle.penup() turtle.forward(40) # turtle.pendown() turtle.pensize(2) turtle.pencolor("red") turtle.bgcolor('black') size = 50 draw_recursive_pentargram(size) turtle.exitonclick() if __name__ == "__main__": main()
是不是感覺挺神奇的,其實這個算法是最簡單的。下面我就讓大傢來見識一下它的真正的本領,感性的魅力。
這個代碼我是去向大師借來的喲,不是小王自己寫的,嘻嘻嘻。
小黃人繪制案例
# 小黃人繪制案例************************************************************************ import turtle t = turtle.Turtle() wn = turtle.Screen() turtle.colormode(255) t.hideturtle() t.speed(10) t.penup() t.pensize(4) t.goto(100,0) t.pendown() t.left(90) t.color((0,0,0),(255,255,0)) #身體繪制上色 t.begin_fill() t.forward(200) t.circle(100,180) t.forward(200) t.circle(100,180) t.end_fill() #右眼睛繪制上色 t.pensize(12) t.penup() t.goto(-100,200) t.pendown() t.right(100) t.circle(500,23) t.pensize(3) t.penup() t.goto(0,200) t.pendown() t.seth(270) t.color("black","white") t.begin_fill() t.circle(30) t.end_fill() t.penup() t.goto(15,200) t.pendown() t.color("black","black") t.begin_fill() t.circle(15) t.end_fill() t.penup() t.goto(35,205) t.color("black","white") t.begin_fill() t.circle(5) t.end_fill() #左眼睛繪制上色 t.pensize(3) t.penup() t.goto(0,200) t.pendown() t.seth(90) t.color("black","white") t.begin_fill() t.circle(30) t.end_fill() t.penup() t.goto(-15,200) t.pendown() t.color("black","black") t.begin_fill() t.circle(15) t.end_fill() t.penup() t.goto(-35,205) t.color("black","white") t.begin_fill() t.circle(5) t.end_fill() #嘴繪制上色 t.penup() t.goto(-20,100) t.pendown() t.seth(270) t.color("black","white") t.begin_fill() t.circle(20,180) t.left(90) t.forward(40) t.end_fill() #褲子繪制上色 t.penup() t.goto(-100,0) t.pendown() t.seth(0) t.color("black","blue") t.begin_fill() t.forward(20) t.left(90) t.forward(40) t.right(90) t.forward(160) t.right(90) t.forward(40) t.left(90) t.forward(20) t.seth(270) t.penup() t.goto(-100,0) t.circle(100,180) t.end_fill() #左褲子腰帶 t.penup() t.goto(-70,20) t.pendown() t.color("black","blue") t.begin_fill() t.seth(45) t.forward(15) t.left(90) t.forward(60) t.seth(270) t.forward(15) t.left(40) t.forward(50) t.end_fill() t.left(180) t.goto(-70,30) t.dot() #右褲腰帶 t.penup() t.goto(70,20) t.pendown() t.color("black","blue") t.begin_fill() t.seth(135) t.forward(15) t.right(90) t.forward(60) t.seth(270) t.forward(15) t.right(40) t.forward(50) t.end_fill() t.left(180) t.goto(70,30) t.dot() #腳 t.penup() t.goto(4,-100) t.pendown() t.seth(270) t.color("black","black") t.begin_fill() t.forward(30) t.left(90) t.forward(40) t.seth(20) t.circle(10,180) t.circle(400,2) t.seth(90) t.forward(20) t.goto(4,-100) t.end_fill() t.penup() t.goto(-4,-100) t.pendown() t.seth(270) t.color("black","black") t.begin_fill() t.forward(30) t.right(90) t.forward(40) t.seth(20) t.circle(10,-225) t.circle(400,-3) t.seth(90) t.forward(21) t.goto(-4,-100) t.end_fill() #左手 t.penup() t.goto(-100,50) t.pendown() t.seth(225) t.color("black","yellow") t.begin_fill() t.forward(40) t.left(90) t.forward(35) t.seth(90) t.forward(50) t.end_fill() #右手 t.penup() t.goto(100,50) t.pendown() t.seth(315) t.color("black","yellow") t.begin_fill() t.forward(40) t.right(90) t.forward(36) t.seth(90) t.forward(50) t.end_fill() # t.penup() t.goto(0,-100) t.pendown() t.forward(30) # t.penup() t.goto(0,-20) t.pendown() t.color("yellow") t.begin_fill() t.seth(45) t.forward(20) t.circle(10,180) t.right(90) t.circle(10,180) t.forward(20) t.end_fill() # t.penup() t.color("black") t.goto(-100,-20) t.pendown() t.circle(30,90) t.penup() t.goto(100,-20) t.pendown() t.circle(30,-90) #頭頂 t.penup() t.goto(2,300) t.pendown() t.begin_fill() t.seth(135) t.circle(100,40) t.end_fill() t.penup() t.goto(2,300) t.pendown() t.begin_fill() t.seth(45) t.circle(100,40) t.end_fill() turtle.exitonclick()
看似復雜而又繁瑣的代碼,它其實是由規律的,不信你可以自己看看它的寫法。
運行美圖:
小黃人不錯吧!!!
櫻花案例
import turtle as T import random import time # 畫櫻花的軀幹(60,t) def Tree(branch, t): time.sleep(0.0005) if branch > 3: if 8 <= branch <= 12: if random.randint(0, 2) == 0: t.color('snow') # 白 else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 3) elif branch < 8: if random.randint(0, 1) == 0: t.color('snow') else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 2) else: t.color('sienna') # 赭(zhě)色 t.pensize(branch / 10) # 6 t.forward(branch) a = 1.5 * random.random() t.right(20 * a) b = 1.5 * random.random() Tree(branch - 10 * b, t) t.left(40 * a) Tree(branch - 10 * b, t) t.right(20 * a) t.up() t.backward(branch) t.down() # 掉落的花瓣 def Petal(m, t): for i in range(m): a = 200 - 400 * random.random() b = 10 - 20 * random.random() t.up() t.forward(b) t.left(90) t.forward(a) t.down() t.color('lightcoral') # 淡珊瑚色 t.circle(1) t.up() t.backward(a) t.right(90) t.backward(b) # 繪圖區域 t = T.Turtle() # 畫佈大小 w = T.Screen() t.hideturtle() # 隱藏畫筆 t.getscreen().tracer(5, 0) w.screensize(bg='wheat') # wheat小麥 t.left(90) t.up() t.backward(150) t.down() t.color('sienna') # 畫櫻花的軀幹 Tree(60, t) # 掉落的花瓣 Petal(200, t) w.exitonclick()
喜歡的小夥伴可以去運行一下,再次聲明一下,上面兩個復雜算法,是其他的人寫的。
到此這篇關於python繪制神器五角星+小黃人+櫻花的文章就介紹到這瞭,更多相關python繪制內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 基於Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼
- python使用Turtle庫畫畫寫名字
- 用Python畫聖誕樹代碼示例
- 詳解Python如何利用turtle繪制中國結
- python基於turtle繪制幾何圖形