Python-turtle绘画旅程第二站:Hello Kitty
生活随笔
收集整理的這篇文章主要介紹了
Python-turtle绘画旅程第二站:Hello Kitty
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
距離上一站已經(jīng)時(shí)隔1年多,我承認(rèn)很懶啦!利用python-turtle工具,通過(guò)調(diào)整角度、弧度完成作畫(huà),其實(shí)用到的方法很簡(jiǎn)單,就是需要耗費(fèi)些精力不斷地修整,閑話少說(shuō),先上個(gè)圖吧!
畫(huà)筆速度較慢,大家耐心等待,也可根據(jù)自己習(xí)慣調(diào)整,直接上代碼:
import math import turtle as t# 計(jì)算長(zhǎng)度、角度 t1:畫(huà)筆對(duì)象 r:半徑 angle:扇形(圓形)的角度 def myarc(t1, r, angle):arc_length = 2 * math.pi * r * angle / 360 # angle角度的扇形的弧長(zhǎng)n = int(arc_length / 3) + 1 # 線段條數(shù)step_length = arc_length / n # 每條線段的長(zhǎng)度step_angle = angle / n # 每條線段的角度polyline(t1, n, step_length, step_angle)# 畫(huà)弧線 t1:畫(huà)筆對(duì)象 n:線段條數(shù) length:每條線段長(zhǎng)度 angle:每條線段的角度 def polyline(t1, n, length, angle):for index in range(n):t1.fd(length)t1.lt(angle)# 小花 def flower(n):for x in range(n):t.forward(0.5)if x < 80:t.left(1)elif x < 120:t.left(2.3)else:t.left(1)# 畫(huà)布 t.screensize(500, 500, "white") t.pensize(8) t.pencolor("black") t.speed(10)# 頭 t.penup() t.goto(-130, 170) t.pendown() t.setheading(220) for x in range(580):t.forward(1)if x < 250:t.left(0.5)elif x < 350:t.left(0.1)else:t.left(0.5)# 耳朵 t.setheading(70) for y in range(150):t.forward(1)if y < 80:t.left(0.2)elif y < 90:t.left(10)else:t.left(0.2) t.setheading(160) for y1 in range(140):t.forward(1)t.left(0.15) t.setheading(140) for y2 in range(157):t.forward(1)if y2 < 65:t.left(0.2)elif y2 < 75:t.left(8)else:t.left(0.5)t.pensize(5) # 左眼睛 t.penup() t.goto(-100, 60) t.setheading(350) t.pendown() t.fillcolor("#000") t.begin_fill() step = 0.3 for i in range(2):for j in range(60):if j < 30:step += 0.02else:step -= 0.02t.forward(step)t.left(3) t.end_fill() # 右眼睛 t.penup() t.goto(50, 40) t.setheading(350) t.pendown() t.fillcolor("#000") t.begin_fill() step = 0.3 for i in range(2):for j in range(60):if j < 30:step += 0.02else:step -= 0.02t.forward(step)t.left(3) t.end_fill() # 鼻子 t.penup() t.goto(-40, 30) t.setheading(260) t.pendown() t.fillcolor("#ebc80e") t.begin_fill() step = 0.3 for i in range(2):for j in range(60):if j < 30:step += 0.02else:step -= 0.02t.forward(step)t.left(3) t.end_fill()# 小花 t.penup() t.goto(20, 180) t.pendown() t.fillcolor("#dd4a76") t.begin_fill() t.setheading(175) flower(200) t.setheading(250) flower(200) t.setheading(325) flower(200) t.setheading(40) flower(200) t.setheading(115) flower(170) t.end_fill() t.penup() t.goto(30, 180) t.setheading(270) t.pendown() t.fillcolor("#e7be04") t.begin_fill() t.circle(10) t.end_fill() # 胡子 t.penup() t.goto(-150, 65) t.pendown() t.setheading(170) t.pensize(6) for y in range(40):t.forward(1)t.left(0.3)t.penup() t.goto(-150, 85) t.pendown() t.setheading(160) for y in range(50):t.forward(1)t.left(0.3)t.penup() t.goto(-150, 45) t.pendown() t.setheading(180) for y in range(55):t.forward(1)t.left(0.3)t.penup() t.goto(110, 10) t.setheading(340) t.pendown() for y in range(40):t.forward(1)t.right(0.3) t.penup() t.goto(120, 30) t.setheading(350) t.pendown() for y in range(30):t.forward(1)t.right(0.3) t.penup() t.goto(115, 50) t.setheading(360) t.pendown() for y in range(50):t.forward(1)t.right(0.3)# 身子 t.pensize(8) t.penup() t.goto(-100, -30) t.setheading(230) t.pendown() t.fillcolor("#efa9c1") t.begin_fill() for z in range(140):t.forward(1)t.left(0.2) t.setheading(340) for z in range(200):t.forward(1)t.left(0.1) t.setheading(85) for z in range(140):t.forward(1)t.left(0.1) t.end_fill() t.penup() t.goto(-73, -33) t.pendown() t.setheading(250) t.fillcolor("#da4b76") t.begin_fill() myarc(t, 40, 205) t.setheading(170) t.pensize(6) t.forward(75) t.end_fill() # 左胳膊 t.pensize(8) t.penup() t.goto(-120, -17) t.setheading(230) t.pendown() t.fillcolor("#d64b75") t.begin_fill() t.forward(50) t.setheading(320) for k in range(27):t.forward(1)t.left(1) t.setheading(55) for k in range(50):t.forward(1)t.right(0.1) t.end_fill() # 左手 t.penup() t.goto(-125, -15) t.setheading(140) t.pendown() t.fillcolor("#fff") t.begin_fill() t.forward(8) t.setheading(50) myarc(t, 10, 190) t.setheading(150) for j in range(80):t.forward(1)t.left(2.2) t.forward(24) t.end_fill() # 右胳膊 t.penup() t.goto(27, -45) t.pendown() t.fillcolor("#db4e79") t.setheading(350) t.begin_fill() for x in range(50):t.forward(1)t.right(1) t.setheading(220) t.forward(40) t.setheading(100) for x in range(50):t.forward(1)t.left(0.2) t.end_fill() # 右手 t.penup() t.goto(70, -75) t.pendown() t.setheading(300) t.forward(8) t.setheading(30) for x in range(40):t.forward(1)t.right(5) t.setheading(280) for x in range(70):t.forward(1)t.right(2) # 右腳 t.penup() t.goto(-70, -180) t.pendown() t.setheading(250) for x in range(30):t.forward(1)t.left(0.3) for x in range(160):t.forward(1)if x < 30:t.left(3)elif x < 65:t.left(0.1)else:t.left(1) # 左腳 t.penup() t.goto(-150, -210) t.setheading(340) t.pendown() t.fillcolor("#fff") t.begin_fill() step = 1.5 for i in range(2):for j in range(60):if j < 30:step += 0.1else:step -= 0.1t.forward(step)t.left(3) t.end_fill()t.hideturtle() t.mainloop()?
僅供大家學(xué)習(xí)參考使用,如需轉(zhuǎn)載請(qǐng)注明出處,謝謝配合!(每個(gè)“手藝人”都不容易,希望理解)
?
?
總結(jié)
以上是生活随笔為你收集整理的Python-turtle绘画旅程第二站:Hello Kitty的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Google Pay支付遇到的问题,妈妈
- 下一篇: Python-Cartopy调用自带线上