你在为美术不好烦恼吗?线画不直?圆画的不圆?PS太贵?现在我们一起用PYTHON画出令你惊叹的美图
turtle是python的第三方库,代码非常之简单简单,0基础也能学
cmd代码如下:
pip install turtle
如下(”分形树“项目中有补充):
1.import turtle as 你给它取得名字,如(tt)
2.tt.title('窗口标题')
3.tt.speed(画笔速度,如:3)
4.tt.penup()抬笔
5.tt.goto(x,y)移动
6.tt.pencolor(画笔颜色)
7.tt.pensize(画笔大小)
8.tt.fillcolor('white')
tt.begin_fill()
tt.end_fill()填充颜色
9.tt.setheading(面向角度)
10.tt.circle(x,y)
代码:
import turtle as tt
tt.title('冰墩墩')
tt.speed(40)
tt.hideturtle()
tt.penup()
tt.goto(177,112)
tt.pencolor('lightgray')
tt.pensize(3)
tt.fillcolor('white')
tt.begin_fill()
tt.pendown()
tt.setheading(80)
tt.circle(-45,200)
tt.circle(-300,23)
tt.end_fill()
tt.penup()
tt.goto(182,95)
tt.pencolor('black')
tt.pensize(1)
tt.fillcolor('black')
tt.begin_fill()
tt.setheading(95)
tt.pendown()
tt.circle(-37,160)
tt.circle(-20,50)
tt.circle(-200,30)
tt.end_fill()
tt.penup()
tt.goto(-73,230)
tt.pencolor('lightgray')
tt.pensize(3)
tt.fillcolor('white')
tt.begin_fill()
tt.pendown()
tt.setheading(20)
tt.circle(-250,35)
tt.setheading(50)
tt.circle(-42,180)
tt.setheading(-50)
tt.circle(-190,30)
tt.circle(-320,45)
tt.circle(120,30)
tt.circle(200,12)
tt.circle(-18,85)
tt.circle(-180,23)
tt.circle(-20,110)
tt.circle(15,115)
tt.circle(100,12)
tt.circle(15,120)
tt.circle(-15,110)
tt.circle(-150,30)
tt.circle(-15,70)
tt.circle(-150,10)
tt.circle(200,35)
tt.circle(-150,20)
tt.setheading(-120)
tt.circle(50,30)
tt.circle(-35,200)
tt.circle(-300,23)
tt.setheading(86)
tt.circle(-300,26)
tt.setheading(122)
tt.circle(-53,160)
tt.end_fill()
tt.penup()
tt.goto(-130,180)
tt.pencolor('black')
tt.pensize(1)
tt.fillcolor('black')
tt.begin_fill()
tt.pendown()
tt.setheading(120)
tt.circle(-28,160)
tt.setheading(210)
tt.circle(150,20)
tt.end_fill()
tt.penup()
tt.goto(90,230)
tt.setheading(40)
tt.begin_fill()
tt.pendown()
tt.circle(-30,170)
tt.setheading(125)
tt.circle(150,23)
tt.end_fill()
tt.penup()
tt.goto(-180,-55)
tt.fillcolor('black')
tt.begin_fill()
tt.setheading(-120)
tt.pendown()
tt.circle(50,30)
tt.circle(-27,200)
tt.circle(-300,20)
tt.setheading(-90)
tt.circle(300,14)
tt.end_fill()
tt.penup()
tt.goto(108,-168)
tt.fillcolor('black')
tt.begin_fill()
tt.pendown()
tt.setheading(-115)
tt.circle(110,15)
tt.circle(200,10)
tt.circle(-18,80)
tt.circle(-180,13)
tt.circle(-20,90)
tt.circle(15,60)
tt.setheading(42)
tt.circle(-200,29)
tt.end_fill()
tt.penup()
tt.goto(-38,-210)
tt.fillcolor('black')
tt.begin_fill()
tt.pendown()
tt.setheading(-155)
tt.circle(15,100)
tt.circle(-10,110)
tt.circle(-100,30)
tt.circle(-15,65)
tt.circle(-100,10)
tt.circle(200,15)
tt.setheading(-14)
tt.circle(-200,27)
tt.end_fill()
tt.penup()
tt.goto(-64,120)
tt.begin_fill()
tt.pendown()
tt.setheading(40)
tt.circle(-35,152)
tt.circle(-100,50)
tt.circle(-35,130)
tt.circle(-100,50)
tt.end_fill()
tt.penup()
tt.goto(-47,55)
tt.fillcolor('white')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(25,360)
tt.end_fill()
tt.penup()
tt.goto(-45,62)
tt.pencolor('darkslategray')
tt.fillcolor('darkslategray')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(19,360)
tt.end_fill()
tt.penup()
tt.goto(-45,68)
tt.fillcolor('black')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(10,360)
tt.end_fill()
tt.penup()
tt.goto(-47,86)
tt.pencolor('white')
tt.fillcolor('white')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(5,360)
tt.end_fill()
tt.penup()
tt.goto(51,82)
tt.fillcolor('black')
tt.begin_fill()
tt.pendown()
tt.setheading(120)
tt.circle(-35,152)
tt.circle(-100,50)
tt.circle(-25,120)
tt.circle(-120,45)
tt.end_fill()
tt.penup()
tt.goto(79,60)
tt.fillcolor('white')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(24,360)
tt.end_fill()
tt.penup()
tt.goto(79,64)
tt.pencolor('darkslategray')
tt.fillcolor('darkslategray')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(19,360)
tt.end_fill()
tt.penup()
tt.goto(79,70)
tt.fillcolor('black')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(10,360)
tt.end_fill()
tt.penup()
tt.goto(79,88)
tt.pencolor('white')
tt.fillcolor('white')
tt.begin_fill()
tt.pendown()
tt.setheading(0)
tt.circle(5,360)
tt.end_fill()
tt.penup()
tt.goto(37,80)
tt.fillcolor('black')
tt.begin_fill()
tt.pendown()
tt.circle(-8,130)
tt.circle(-22,100)
tt.circle(-8,130)
tt.end_fill()
tt.penup()
tt.goto(-15,48)
tt.setheading(-36)
tt.begin_fill()
tt.pendown()
tt.circle(60,70)
tt.setheading(-132)
tt.circle(-45,100)
tt.end_fill()
tt.penup()
tt.goto(-135,120)
tt.pensize(5)
tt.pencolor('cyan')
tt.pendown()
tt.setheading(60)
tt.circle(-165,150)
tt.circle(-130,78)
tt.circle(-250,30)
tt.circle(-138,105)
tt.penup()
tt.goto(-131,116)
tt.pencolor('slateblue')
tt.pendown()
tt.setheading(60)
tt.circle(-160,144)
tt.circle(-120,78)
tt.circle(-242,30)
tt.circle(-135,105)
tt.penup()
tt.goto(-127,112)
tt.pencolor('orangered')
tt.pendown()
tt.setheading(60)
tt.circle(-155,136)
tt.circle(-116,86)
tt.circle(-220,30)
tt.circle(-134,103)
tt.penup()
tt.goto(-123,108)
tt.pencolor('gold')
tt.pendown()
tt.setheading(60)
tt.circle(-150,136)
tt.circle(-104,86)
tt.circle(-220,30)
tt.circle(-126,102)
tt.penup()
tt.goto(-120,104)
tt.pencolor('greenyellow')
tt.pendown()
tt.setheading(60)
tt.circle(-145,136)
tt.circle(-90,83)
tt.circle(-220,30)
tt.circle(-120,100)
tt.penup()
tt.penup()
tt.goto(220,115)
tt.pencolor('brown')
tt.pensize(1)
tt.fillcolor('brown')
tt.begin_fill()
tt.pendown()
tt.setheading(36)
tt.circle(-8,180)
tt.circle(-60,24)
tt.setheading(110)
tt.circle(-60,24)
tt.circle(-8,180)
tt.end_fill()
tt.penup()
tt.goto(-5,-170)
tt.pendown()
tt.pencolor('blue')
tt.circle(6)
tt.penup()
tt.goto(10,-170)
tt.pendown()
tt.pencolor('black')
tt.circle(6)
tt.penup()
tt.goto(25,-170)
tt.pendown()
tt.pencolor('brown')
tt.circle(6)
tt.penup()
tt.goto(2,-175)
tt.pendown()
tt.pencolor('lightgoldenrod')
tt.circle(6)
tt.penup()
tt.goto(16,-175)
tt.pendown()
tt.pencolor('green')
tt.circle(6)
tt.penup()
tt.pencolor('black')
tt.goto(-16,-160)
tt.write('BEIJING 2022',font=('Arial',10,'bold italic'))
tt.done()
效果图片:
1.代码示例
import turtle as tu
roo = tu.Turtle() # 创建对象
wn = tu.Screen() # 屏幕对象
wn.bgcolor("black") # 屏幕背景
wn.title("分形树")
roo.left(90) # 移动
roo.speed(20) # 速度
def draw(l): # 以长度'l'作为参数的递归函数
if l < 10:
return
else:
roo.pensize(2) # 设置画笔大小
roo.pencolor("yellow") # 画笔颜色
roo.forward(l) # 朝向
roo.left(30) # 移动
draw(3 * l / 4) # 绘制
roo.right(60) # 移动
draw(3 * l / 4) # 绘制
roo.left(30) # 移动
roo.pensize(2)
roo.backward(l) # 返回初始位置
draw(20) # 绘制20次
roo.right(90)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(2)
roo.pencolor("magenta") # magenta
roo.forward(l)
roo.left(30)
draw(3 * l / 4)
roo.right(60)
draw(3 * l / 4)
roo.left(30)
roo.pensize(2)
roo.backward(l)
draw(20)
roo.left(270)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(2)
roo.pencolor("red") # red
roo.forward(l)
roo.left(30)
draw(3 * l / 4)
roo.right(60)
draw(3 * l / 4)
roo.left(30)
roo.pensize(2)
roo.backward(l)
draw(20)
roo.right(90)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(2)
roo.pencolor('#FFF8DC') # white
roo.forward(l)
roo.left(30)
draw(3 * l / 4)
roo.right(60)
draw(3 * l / 4)
roo.left(30)
roo.pensize(2)
roo.backward(l)
draw(20)
########################################################
def draw(l):
if (l < 10):
return
else:
roo.pensize(3)
roo.pencolor("lightgreen") # lightgreen
roo.forward(l)
roo.left(30)
draw(4 * l / 5)
roo.right(60)
draw(4 * l / 5)
roo.left(30)
roo.pensize(3)
roo.backward(l)
draw(40)
roo.right(90)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(3)
roo.pencolor("red") # red
roo.forward(l)
roo.left(30)
draw(4 * l / 5)
roo.right(60)
draw(4 * l / 5)
roo.left(30)
roo.pensize(3)
roo.backward(l)
draw(40)
roo.left(270)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(3)
roo.pencolor("yellow") # yellow
roo.forward(l)
roo.left(30)
draw(4 * l / 5)
roo.right(60)
draw(4 * l / 5)
roo.left(30)
roo.pensize(3)
roo.backward(l)
draw(40)
roo.right(90)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(3)
roo.pencolor('#FFF8DC') # white
roo.forward(l)
roo.left(30)
draw(4 * l / 5)
roo.right(60)
draw(4 * l / 5)
roo.left(30)
roo.pensize(3)
roo.backward(l)
draw(40)
########################################################
def draw(l):
if (l < 10):
return
else:
roo.pensize(2)
roo.pencolor("cyan") # cyan
roo.forward(l)
roo.left(30)
draw(6 * l / 7)
roo.right(60)
draw(6 * l / 7)
roo.left(30)
roo.pensize(2)
roo.backward(l)
draw(60)
roo.right(90)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(2)
roo.pencolor("yellow") # yellow
roo.forward(l)
roo.left(30)
draw(6 * l / 7)
roo.right(60)
draw(6 * l / 7)
roo.left(30)
roo.pensize(2)
roo.backward(l)
draw(60)
roo.left(270)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(2)
roo.pencolor("magenta") # magenta
roo.forward(l)
roo.left(30)
draw(6 * l / 7)
roo.right(60)
draw(6 * l / 7)
roo.left(30)
roo.pensize(2)
roo.backward(l)
draw(60)
roo.right(90)
roo.speed(2000)
# recursion
def draw(l):
if (l < 10):
return
else:
roo.pensize(2)
roo.pencolor('#FFF8DC') # white
roo.forward(l)
roo.left(30)
draw(6 * l / 7)
roo.right(60)
draw(6 * l / 7)
roo.left(30)
roo.pensize(2)
roo.backward(l)
draw(60)
wn.exitonclick()
2.效果图片