【Python】Python海龟绘图秀场
生活随笔
收集整理的這篇文章主要介紹了
【Python】Python海龟绘图秀场
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1.繪制粉色五角星
- 2.普通的綠樹
- 3.超神的分形樹
- 4.又一個分形圖形
- 5.連續的五個隨機顏色五角星
- 6.正方形的高度旋轉堆疊——竟是……Darkness
- 7.紫色小蛇(Python本體不外如是)
- 8.眼花繚亂的隨機色圖形
- 9.謝爾平斯基三角形
- 10.小豬佩奇
1.繪制粉色五角星
import turtledef drawFivePointStar(t, x, y, lengthOfSide):# 從(x, y)向東南方向出發t.up()t.goto(x, y)t.left(36)t.down()for i in range(5):t.forward(lengthOfSide)# 144 = 180 - 36t.left(144)myTurtle = turtle.Turtle() myTurtle.hideturtle() myTurtle.color("deeppink") myWindow = myTurtle.getscreen() lengthOfSide = 200 drawFivePointStar(myTurtle, 0, 0, lengthOfSide) myWindow.exitonclick()2.普通的綠樹
from turtle import *# 遞歸繪制一棵樹 def tree(branchLength, turtle):if branchLength > 5:turtle.forward(branchLength)turtle.right(20)tree(branchLength-15, turtle)turtle.left(40)tree(branchLength-10, turtle)turtle.right(20)turtle.backward(branchLength)myTurtle = Turtle() myWindow = myTurtle.getscreen() myTurtle.hideturtle() myTurtle.left(90) myTurtle.up() myTurtle.backward(300) myTurtle.down() myTurtle.color('green') tree(110, myTurtle)3.超神的分形樹
from turtle import *# 設置色彩模式是RGB: colormode(255)lt(90)lv = 14 l = 120 s = 45width(lv)# 初始化RGB顏色: r = 0 g = 0 b = 0 pencolor(r, g, b)penup() bk(l) pendown() fd(l)def draw_tree(l, level):global r, g, b# save the current pen widthw = width()# narrow the pen widthwidth(w * 3.0 / 4.0)# set color:r = r + 1g = g + 2b = b + 3pencolor(r % 200, g % 200, b % 200)l = 3.0 / 4.0 * llt(s)fd(l)if level < lv:draw_tree(l, level + 1)bk(l)rt(2 * s)fd(l)if level < lv:draw_tree(l, level + 1)bk(l)lt(s)# restore the previous pen widthwidth(w)speed("fastest") draw_tree(l, 4) done()4.又一個分形圖形
import turtledef fractal(myTurtle, x1, y1, x2, y2, level):# 從(x1, y1)坐標畫到(x2, y2)坐標newX = 0newY = 0if level == 0:drawLine(myTurtle, x1, y1, x2, y2)else:newX = (x1+x2)/2 + (y2-y1)/2newY = (y1+y2)/2 - (x2-x1)/2fractal(myTurtle, x1, y1, newX, newY, level-1)fractal(myTurtle, newX, newY, x2, y2, level-1)def drawLine(myTurtle, x1, y1, x2, y2):# 繪制從(x1, y1)到(x2, y2)的線myTurtle.up()myTurtle.goto(x1, y1)myTurtle.down()myTurtle.goto(x2, y2)t = turtle.Turtle() myWindow = t.getscreen() t.hideturtle() # 最快速度 t.speed(0) level = 12 fractal(t, -80, 60, 80, 60, level) # 窗口不會自動關閉 myWindow.exitonclick()5.連續的五個隨機顏色五角星
from turtle import * from random import randintdef drawStar(x, y):pu()goto(x, y)pd()colormode(255)# set heading: 0seth(0)for i in range(5):r = randint(0, 255)g = randint(0, 255)b = randint(0, 255)pencolor(r, g, b) fd(40)rt(144)hideturtle() for x in range(0, 250, 50):drawStar(x, 0) done()6.正方形的高度旋轉堆疊——竟是……Darkness
import turtlefor i in range(360):turtle.setheading(i)for i in range(4):turtle.forward(100)turtle.left(90)7.紫色小蛇(Python本體不外如是)
import turtledef drawSnake(rad, angle, len, neckrad):for _ in range(len):turtle.circle(rad, angle)turtle.circle(-rad, angle)turtle.circle(rad, angle/2)turtle.forward(rad/2) # 直線前進turtle.circle(neckrad, 180)turtle.forward(rad/4)turtle.setup(1500, 1400, 0, 0) turtle.pensize(30) turtle.pencolor("purple") turtle.seth(150) drawSnake(70, 80, 2, 15)8.眼花繚亂的隨機色圖形
import turtle as tt from random import randinttt.TurtleScreen._RUNNING = True tt.speed(0) # 繪圖速度為最快 tt.bgcolor("black") # 背景色為黑色 tt.setpos(-25, 25) # 改變初始位置,這可以讓圖案居中 tt.colormode(255) # 顏色模式為真彩色 cnt = 0 while cnt < 500:r = randint(0, 255)g = randint(0, 255)b = randint(0, 255)tt.pencolor(r, g, b) # 畫筆顏色每次隨機tt.forward(50 + cnt)tt.right(91)cnt += 1 tt.done()9.謝爾平斯基三角形
from turtle import *def drawTriangle(points, color, turtle):turtle.fillcolor(color)turtle.up()turtle.goto(points[0])turtle.down()turtle.begin_fill()turtle.goto(points[1])turtle.goto(points[2])turtle.goto(points[0])turtle.end_fill()def getMid(p1, p2):return ( (p1[0] + p2[0]) / 2, (p1[1] + p2[1]) / 2 )def sierpinski(points, degree, turtle):colorMap = ['blue', 'red', 'green', 'white', 'yellow', 'violet', 'orange']drawTriangle(points, colorMap[degree], turtle)if degree > 0:sierpinski([points[0], getMid(points[0], points[1]), getMid(points[0], points[2])], degree-1, turtle)sierpinski([points[1], getMid(points[0], points[1]), getMid(points[1], points[2])], degree - 1, turtle)sierpinski([points[2], getMid(points[2], points[1]), getMid(points[0], points[2])], degree - 1, turtle)myTurtle = Turtle() myWindow = myTurtle.getscreen() myPoints = [(-400, -200), (0, 400), (400, -200)] sierpinski(myPoints, 5, myTurtle) myWindow.exitonclick()10.小豬佩奇
import turtle as tt.pensize(4) t.hideturtle() t.colormode(255) t.color((255, 155, 192), "pink") t.setup(840, 500) t.speed(10)# 鼻子 t.penup() t.goto(-100,100) t.pendown() t.seth(-30) t.begin_fill() a = 0.4 for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a = a+0.08t.left(3)t.forward(a)else:a = a-0.08t.left(3)t.forward(a)t.end_fill()t.penup() t.seth(90) t.forward(25) t.seth(0) t.forward(10) t.pendown() t.pencolor(255, 155, 192) t.seth(10) t.begin_fill() t.circle(5) t.color(160, 82, 45) t.end_fill()t.penup() t.seth(0) t.forward(20) t.pendown() t.pencolor(255, 155, 192) t.seth(10) t.begin_fill() t.circle(5) t.color(160, 82, 45) t.end_fill()# 頭 t.color((255, 155, 192), "pink") t.penup() t.seth(90) t.forward(41) t.seth(0) t.forward(0) t.pendown() t.begin_fill() t.seth(180) t.circle(300, -30) t.circle(100, -60) t.circle(80, -100) t.circle(150, -20) t.circle(60, -95) t.seth(161) t.circle(-300, 15) t.penup() t.goto(-100, 100) t.pendown() t.seth(-30) a = 0.4 for i in range(60):if 0 <= i < 30 or 60 <= i <90:a = a+0.08t.left(3)t.forward(a)else:a = a-0.08t.left(3)t.forward(a)t.end_fill()# 耳朵 t.color((255, 155, 192), "pink") t.penup() t.seth(90) t.forward(-7) t.seth(0) t.forward(70) t.pendown() t.begin_fill() t.seth(100) t.circle(-50, 50) t.circle(-10, 120) t.circle(-50, 54) t.end_fill()t.penup() t.seth(90) t.forward(-12) t.seth(0) t.forward(30) t.pendown() t.begin_fill() t.seth(100) t.circle(-50, 50) t.circle(-10, 120) t.circle(-50, 56) t.end_fill()#眼睛 t.color((255, 155, 192), "white") t.penup() t.seth(90) t.forward(-20) t.seth(0) t.forward(-95) t.pendown() t.begin_fill() t.circle(15) t.end_fill()t.color("black") t.penup() t.seth(90) t.forward(12) t.seth(0) t.forward(-3) t.pendown() t.begin_fill() t.circle(3) t.end_fill()t.color((255, 155, 192), "white") t.penup() t.seth(90) t.forward(-25) t.seth(0) t.forward(40) t.pendown() t.begin_fill() t.circle(15) t.end_fill()t.color("black") t.penup() t.seth(90) t.forward(12) t.seth(0) t.forward(-3) t.pendown() t.begin_fill() t.circle(3) t.end_fill()# 腮 t.color((255, 155, 192)) t.penup() t.seth(90) t.forward(-95) t.seth(0) t.forward(65) t.pendown() t.begin_fill() t.circle(30) t.end_fill()# 嘴 t.color(239, 69, 19) t.penup() t.seth(90) t.forward(15) t.seth(0) t.forward(-100) t.pendown() t.seth(-80) t.circle(30, 40) t.circle(40, 80)# 身體 t.color("red", (255, 99, 71)) t.penup() t.seth(90) t.forward(-20) t.seth(0) t.forward(-78) t.pendown() t.begin_fill() t.seth(-130) t.circle(100,10) t.circle(300,30) t.seth(0) t.forward(230) t.seth(90) t.circle(300,30) t.circle(100,3) t.color((255,155,192),(255,100,100)) t.seth(-135) t.circle(-80,63) t.circle(-150,24) t.end_fill()# 手 t.color((255,155,192)) t.penup() t.seth(90) t.forward(-40) t.seth(0) t.forward(-27) t.pendown() t.seth(-160) t.circle(300,15) t.penup() t.seth(90) t.forward(15) t.seth(0) t.forward(0) t.pendown() t.seth(-10) t.circle(-20,90)t.penup() t.seth(90) t.forward(30) t.seth(0) t.forward(237) t.pendown() t.seth(-20) t.circle(-300,15) t.penup() t.seth(90) t.forward(20) t.seth(0) t.forward(0) t.pendown() t.seth(-170) t.circle(20,90)# 腳 t.pensize(10) t.color((240,128,128)) t.penup() t.seth(90) t.forward(-75) t.seth(0) t.forward(-180) t.pendown() t.seth(-90) t.forward(40) t.seth(-180) t.color("black") t.pensize(15) t.forward(20)t.pensize(10) t.color((240, 128, 128)) t.penup() t.seth(90) t.forward(40) t.seth(0) t.forward(90) t.pendown() t.seth(-90) t.forward(40) t.seth(-180) t.color("black") t.pensize(15) t.forward(20)# 尾巴 t.pensize(4) t.color((255, 155, 192)) t.penup() t.seth(90) t.forward(70) t.seth(0) t.forward(95) t.pendown() t.seth(0) t.circle(70, 20) t.circle(10, 330) t.circle(70, 30) t.done()總結
以上是生活随笔為你收集整理的【Python】Python海龟绘图秀场的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构与算法】共享栈的Java实现
- 下一篇: 【Python】Numpy处理.csv数