精华内容
下载资源
问答
  • turtle作图作品

    2018-06-25 17:56:08
    绘图方式和Pygame有很大不同,Pygame是通过场景与场景的快速变换体现事物的变化,而Turtle更像我们生活中的绘画,每一画依次完成。假设一个机器人在(0,0),我们对其有各种操作,如前行,后行,变换前进方向等操作,...
  • Turtle,也叫海龟渲染器,使用Turtle库画图也叫海龟作图。Turtle库是Python语言中一个很流行...使用之前需要导入库:import turtle绘图命令操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令; 一种...

    Turtle,也叫海龟渲染器,使用Turtle库画图也叫海龟作图。Turtle库是Python语言中一个很流行的绘制图像的函数库。海龟渲染器,和各种三维软件都有着良好的结合。功能强大,使用方便。该渲染器的特色在于其渲染速度可以优海龟渲染器,和各种三维软件都有着良好的结合。使用之前需要导入库:import turtle

    绘图命令

    操纵海龟绘图有着许多的命令,这些命令可以划分为3种:

    一种为运动命令; 一种为画笔控制命令; 还有一种是全局控制命令;

    (1) 画笔运动命令:

    命令

    说明

    turtle.forward(distance)

    向当前画笔方向移动distance像素长

    turtle.backward(distance)

    向当前画笔相反方向移动distance像素长度

    turtle.right(degree)

    顺时针移动degree°

    turtle.left(degree)

    逆时针移动degree°

    turtle.pendown()

    移动时绘制图形,缺省时也为绘制

    turtle.goto(x,y)

    将画笔移动到坐标为x,y的位置

    turtle.penup()

    移动时不绘制图形,提起笔,用于另起一个地方绘制时用

    turtle.speed(speed)

    画笔绘制的速度范围[0,10]整数

    turtle.circle()

    画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

    (2) 画笔控制命令:

    命令

    说明

    turtle.pensize(width)

    绘制图形时的宽度

    turtle.pencolor()

    画笔颜色

    turtle.fillcolor(colorstring)

    绘制图形的填充颜色

    turtle.color(color1, color2)

    同时设置pencolor=color1, fillcolor=color2

    turtle.filling()

    返回当前是否在填充状态

    turtle.begin_fill()

    准备开始填充图形

    turtle.end_fill()

    填充完成;

    turtle.hideturtle()

    隐藏箭头显示;

    turtle.showturtle()

    与hideturtle()函数对应

    (3) 全局控制命令

    命令

    说明

    turtle.clear()

    清空turtle窗口,但是turtle的位置和状态不会改变

    turtle.reset()

    清空窗口,重置turtle状态为起始状态

    turtle.undo()

    撤销上一个turtle动作

    turtle.isvisible()

    返回当前turtle是否可见

    stamp()

    复制当前图形

    turtle.write(s[,font=("font-name",fontsize,"fonttype")])

    写文本,s为文本内容,font是字体的参数,里面分别为字体名称,大小和类型;font为可选项, font的参数也是可选项

    (4)命令详解

    turtle.colormode(mode)

    1.0:RGB小数模式 255:RGB整数模式

    turtle.penup() 别名 turtle.pu() 画笔抬起,不留下痕迹

    turtle.pendown() 别名turtle.pd()`画笔落下,留下痕迹

    turtle.pensize(width) 别名 turtle.width(width)画笔宽度

    turtle.pencolor(color)

    turtle.pencolor("purple")颜色字符串 turtle.pencolor(0.63,0.13,0.94)RGB的小数值     turtle.pencolor((0.63,0.13,0.94))RGB的元组值

    turtle.forword(d) 别名 turtle.fd(d)向前行进 d:行进距离,可以为负数

    turtle.circle(r,extent=None)根据半径r,绘制一个extent角度的弧度 r:默认圆心在海龟左侧r距离的位置

    turtle.setheading(angle) 别名 turtle.seth(angle)改变行进方向

    angle:改变方向的角度(绝对坐标下,绝对角度)

    turtle.left(angle) turtle.right(angle) angle:当前方向上转过得角度

    让我们用 “社会人” 的方式来练习一下

    e92f117fd4e94088913bcc83fe687e3a.jpg

    from turtle import *def nose(x,y): """画鼻子""" pensize(5) pencolor((255, 155, 192)) penup() # 将海龟移动到指定的坐标 goto(x,y) pendown() # 设置海龟的方向(0-东、90-北、180-西、270-南) setheading(-30) begin_fill() fillcolor(255, 192, 203) a = 0.4 for i in range(120): if 0 <= i < 30 or 60 <= i <90: a = a + 0.08 # 向左转3度 left(3) # 向前走 forward(a) else: a = a - 0.08 left(3) forward(a) end_fill() penup() setheading(90) forward(25) setheading(0) forward(10) pendown() # 设置画笔的颜色(红, 绿, 蓝) pencolor(255, 155, 192) setheading(10) begin_fill() circle(5) color(160, 82, 45) end_fill() penup() setheading(0) forward(20) pendown() pencolor(255, 155, 192) setheading(10) begin_fill() circle(5) color(160, 82, 45) end_fill()def head(x, y): """画头""" color((255, 155, 192), "pink") penup() goto(x,y) setheading(0) pendown() begin_fill() setheading(180) circle(300, -30) circle(100, -60) circle(80, -100) circle(150, -20) circle(60, -95) setheading(161) circle(-300, 15) penup() goto(-100, 100) pendown() setheading(-30) a = 0.4 for i in range(60): if 0<= i < 30 or 60 <= i < 90: a = a + 0.08 lt(3) #向左转3度 fd(a) #向前走a的步长 else: a = a - 0.08 lt(3) fd(a) end_fill()def ears(x,y): """画耳朵""" color((255, 155, 192), "pink") penup() goto(x, y) pendown() begin_fill() setheading(100) circle(-50, 50) circle(-10, 120) circle(-50, 54) end_fill() penup() setheading(90) forward(-12) setheading(0) forward(30) pendown() begin_fill() setheading(90) circle(-50, 50) circle(-10, 120) circle(-50, 56) end_fill()def eyes(x,y): """画眼睛""" color((255, 155, 192), "white") penup() setheading(90) forward(-20) setheading(0) forward(-95) pendown() begin_fill() circle(15) end_fill() color("black") penup() setheading(90) forward(12) setheading(0) forward(-3) pendown() begin_fill() circle(3) end_fill() color((255, 155, 192), "white") penup() seth(90) forward(-25) seth(0) forward(40) pendown() begin_fill() circle(15) end_fill() color("black") penup() setheading(90) forward(12) setheading(0) forward(-3) pendown() begin_fill() circle(3) end_fill()def cheek(x,y): """画脸颊""" color((255, 155, 192)) penup() goto(x,y) pendown() setheading(0) begin_fill() circle(30) end_fill()def mouth(x,y): """画嘴巴""" color(239, 69, 19) penup() goto(x, y) pendown() setheading(-80) circle(30, 40) circle(40, 80)def body(x,y): '''画身体''' penup() goto(x,y) pencolor('red') fillcolor(250,106,106) pendown() begin_fill() setheading(-66) circle(-450,17) setheading(180) forward(185) setheading(85) circle(-450,17) end_fill() '''右手''' penup() goto(110,-45) pendown() pensize(8) pencolor(255, 192, 203) setheading(30) circle(-400,10) penup() goto(167,-5) pendown() setheading(-120) forward(20) left(100) forward(20) '''左手''' penup() goto(-25,-45) pendown() pencolor(255, 192, 203) setheading(150) circle(400,10) penup() goto(-78,-6) pendown() setheading(-60) forward(20) right(100) forward(20)def feet1(x,y): pensize(7) pencolor(255, 192, 203) penup() goto(x,y) setheading(-90) pendown() forward(10) penup() goto(x-12,y-10) pendown() pencolor(238,201,0) fillcolor(238,230,132) begin_fill() setheading(0) forward(24) right(90) forward(36) right(90) forward(40) circle(-10,180) forward(16) left(90) forward(12) end_fill()def feet2(x,y): pensize(7) pencolor(255, 192, 203) penup() goto(x,y) setheading(-90) pendown() forward(10) penup() goto(x-12,y-10) pendown() pencolor(238,201,0) fillcolor(238,230,132) begin_fill() setheading(0) forward(24) right(90) forward(36) right(90) forward(40) circle(-10,180) forward(16) left(90) forward(12) end_fill()def tail(x,y): pensize(8) penup() goto(x,y) pendown() pencolor(255, 192, 203) setheading(-5) circle(30,100) circle(10,180) circle(20,150)def backg(x): penup() goto(-420,x) setheading(0) fillcolor(50,205,50) begin_fill() forward(840) right(90) forward(300) right(90) forward(840) right(90) forward(300) end_fill() setheading(0) fillcolor(0,191,255) begin_fill() forward(840) left(90) forward(600) left(90) forward(840) left(90) forward(600) end_fill()def cloude1(x, y): """画云""" penup() goto(x,y) setheading(90) fillcolor(255,255,255) begin_fill() a = 0.4 for i in range(120): if 0 <= i < 30 or 60 <= i <90: a = a + 0.14 # 向左转3度 left(3) # 向前走 forward(a) else: a = a - 0.15 left(3) forward(a) end_fill()def cloude2(x, y): """画云""" penup() goto(x,y) setheading(90) fillcolor(255,255,255) begin_fill() a = 0.4 for i in range(120): if 0 <= i < 30 or 60 <= i <90: a = a + 0.15 # 向左转3度 left(3) # 向前走 forward(a) else: a = a - 0.13 left(3) forward(a) end_fill()def setting(): """设置参数""" pensize(5) # 隐藏海龟 hideturtle() colormode(255) color((255, 155, 192), "pink") setup(840, 700) speed(10)def main(): """主函数""" setting() backg(0) body(105,-20) nose(-100, 100) head(-69, 167) ears(0, 160) eyes(0, 140) cheek(80, 10) mouth(-20, 30) feet1(10,-150) feet2(90,-150) tail(130,-110) cloude1(-200,200) cloude2(300,300) done()if __name__ == '__main__': main()复制代码

    turtle作品

    1、五角星

    f25558f7238347a091eae316c2643bff.jpg

    import turtleturtle.color('red','red')turtle.begin_fill()for i in range(5): turtle.forward(100) turtle.right(144)turtle.end_fill()turtle.hideturtle()turtle.done()复制代码

    2、粉色心

    cc33c70a87ae492b98168e037f734f3f.jpg

    import turtlet = turtle.Turtle()t.speed(0)def curvemove(): for i in range(200): t.right(1) t.forward(1)t.color('red','pink')t.begin_fill()t.left(140)t.forward(111.65)curvemove()t.left(120)curvemove()t.forward(111.65)t.end_fill()t.hideturtle()turtle.done()复制代码

    3、奥运五环

    795fedf9ecfb443bb67f4ccba70eb244.jpg

    import turtle # 导入turtle模块turtle.width(5) # 确定圆圈的宽度turtle.circle(60) # 确定圆的半径turtle.penup()turtle.forward(140)turtle.pendown()turtle.color("red") # 确定圆圈的颜色turtle.circle(60)turtle.penup()turtle.forward(140)turtle.pendown()turtle.color("yellow")turtle.circle(60)turtle.penup() turtle.goto(210, -50) turtle.pendown() turtle.color("blue") turtle.circle(60) turtle.penup()turtle.goto(60, -50)turtle.pendown()turtle.color("green")turtle.circle(60)turtle.done()复制代码

    4、时钟1

    复制代码

    # coding=utf-8

    import turtle

    from datetime import *

    # 抬起画笔,向前运动一段距离放下

    def Skip(step):

    turtle.penup()

    turtle.forward(step)

    turtle.pendown()

    def mkHand(name, length):

    # 注册Turtle形状,建立表针Turtle

    turtle.reset()

    Skip(-length * 0.1)

    # 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

    turtle.begin_poly()

    turtle.forward(length * 1.1)

    # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

    turtle.end_poly()

    # 返回最后记录的多边形。

    handForm = turtle.get_poly()

    turtle.register_shape(name, handForm)

    def Init():

    global secHand, minHand, hurHand, printer

    # 重置Turtle指向北

    turtle.mode("logo")

    # 建立三个表针Turtle并初始化

    mkHand("secHand", 135)

    mkHand("minHand", 125)

    mkHand("hurHand", 90)

    secHand = turtle.Turtle()

    secHand.shape("secHand")

    minHand = turtle.Turtle()

    minHand.shape("minHand")

    hurHand = turtle.Turtle()

    hurHand.shape("hurHand")

    for hand in secHand, minHand, hurHand:

    hand.shapesize(1, 1, 3)

    hand.speed(0)

    # 建立输出文字Turtle

    printer = turtle.Turtle()

    # 隐藏画笔的turtle形状

    printer.hideturtle()

    printer.penup()

    def SetupClock(radius):

    # 建立表的外框

    turtle.reset()

    turtle.pensize(7)

    turtle.pencolor("#ff5500")

    turtle.fillcolor("green")

    for i in range(60):

    Skip(radius)

    if i % 5 == 0:

    turtle.forward(20)

    Skip(-radius - 20)

    Skip(radius + 20)

    if i == 0:

    turtle.write(int(12), align="center", font=("Courier", 14, "bold"))

    elif i == 30:

    Skip(25)

    turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))

    Skip(-25)

    elif (i == 25 or i == 35):

    Skip(20)

    turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))

    Skip(-20)

    else:

    turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))

    Skip(-radius - 20)

    else:

    turtle.dot(5)

    Skip(-radius)

    turtle.right(6)

    def Week(t):

    week = ["星期一", "星期二", "星期三",

    "星期四", "星期五", "星期六", "星期日"]

    return week[t.weekday()]

    def Date(t):

    y = t.year

    m = t.month

    d = t.day

    return "%s-%d-%d" % (y, m, d)

    def Tick():

    # 绘制表针的动态显示

    t = datetime.today()

    second = t.second + t.microsecond * 0.000001

    minute = t.minute + second / 60.0

    hour = t.hour + minute / 60.0

    secHand.setheading(6 * second)

    minHand.setheading(6 * minute)

    hurHand.setheading(30 * hour)

    turtle.tracer(False)

    printer.forward(65)

    printer.write(Week(t), align="center",

    font=("Courier", 14, "bold"))

    printer.back(130)

    printer.write(Date(t), align="center",

    font=("Courier", 14, "bold"))

    printer.home()

    turtle.tracer(True)

    # 100ms后继续调用tick

    turtle.ontimer(Tick, 100)

    def main():

    # 打开/关闭龟动画,并为更新图纸设置延迟。

    turtle.tracer(False)

    Init()

    SetupClock(160)

    turtle.tracer(True)

    Tick()

    turtle.mainloop()

    if __name__ == "__main__":

    main()复制代码

    时钟2

    9c72358b1691415592898b31e090a348.jpg

    from turtle import *from datetime import *def Skip(step): penup() forward(step) pendown()def mkHand(name, length): #注册Turtle形状,建立表针Turtle reset() Skip(-length*0.1) begin_poly() forward(length*1.1) end_poly() handForm = get_poly() register_shape(name, handForm)#通过上述代码得到了3个表针的对象def Init(): global secHand, minHand, hurHand, printer mode("logo")# 重置Turtle指向北 #建立三个表针Turtle并初始化 mkHand("secHand", 125) mkHand("minHand", 130) mkHand("hurHand", 90)#建立3个表针初始化 secHand = Turtle()#Turtle是turtle模块中的一个类,这样将三个表针实例化 secHand.shape("secHand")#建立秒针对象,shape是Turtle类中的方法 minHand = Turtle() minHand.shape("minHand")#分针对象 hurHand = Turtle() hurHand.shape("hurHand")#时针对象 for hand in secHand, minHand, hurHand: hand.shapesize(1, 1, 3) hand.speed(0)#速度最快,设为其他数时,有一个变化过程。 #建立输出文字Turtle printer = Turtle()#同样实例化,将输出文字为类的一个对象 printer.hideturtle() printer.penup()def SetupClock(radius): #建立表的外框 reset() pensize(7) for i in range(60): Skip(radius) if i % 5 == 0: forward(20) Skip(-radius-20) else: dot(5) Skip(-radius) right(6)def Week(t): week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] return week[t.weekday()]def Date(t): y = t.year m = t.month d = t.day return "%s %d %d" % (y, m, d)def Tick(): #绘制表针的动态显示 t = datetime.today() second = t.second + t.microsecond*0.000001 minute = t.minute + second/60.0 hour = t.hour + minute/60.0 secHand.setheading(6*second)#表针对象中的setheading方法接受参数,设置当前朝向角度 minHand.setheading(6*minute) hurHand.setheading(30*hour) tracer(False) printer.forward(65) printer.write(Week(t), align="center", font=("Courier", 14, "bold")) printer.back(130) printer.write(Date(t), align="center", font=("Courier", 14, "bold")) printer.home() tracer(True) ontimer(Tick, 100)#100ms后继续调用tickdef main(): tracer(False) Init() SetupClock(160) tracer(True) Tick() mainloop()if __name__ == "__main__": main()复制代码

    5、树1

    682199ac05454cdaa65df1f081cd0eb9.jpg

    from turtle import *from random import *from math import *def tree(n, l): pd() # 下笔 # 阴影效果 t = cos(radians(heading() + 45)) / 8 + 0.25 pencolor(t, t, t) pensize(n / 3) forward(l) # 画树枝 if n > 0: b = random() * 15 + 10 # 右分支偏转角度 c = random() * 15 + 10 # 左分支偏转角度 d = l * (random() * 0.25 + 0.7) # 下一个分支的长度 # 右转一定角度,画右分支 right(b) tree(n - 1, d) # 左转一定角度,画左分支 left(b + c) tree(n - 1, d) # 转回来 right(c) else: # 画叶子 right(90) n = cos(radians(heading() - 45)) / 4 + 0.5 pencolor(n, n*0.8, n*0.8) circle(3) left(90) # 添加0.3倍的飘落叶子 if(random() > 0.7): pu() # 飘落 t = heading() an = -40 + random()*40 setheading(an) dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2) forward(dis) setheading(t) # 画叶子 pd() right(90) n = cos(radians(heading() - 45)) / 4 + 0.5 pencolor(n*0.5+0.5, 0.4+n*0.4, 0.4+n*0.4) circle(2) left(90) pu() #返回 t = heading() setheading(an) backward(dis) setheading(t) pu() backward(l)# 退回bgcolor(0.5, 0.5, 0.5) # 背景色ht() # 隐藏turtlespeed(0) # 速度,1-10渐进,0最快tracer(0, 0)pu() # 抬笔backward(100)left(90) # 左转90度pu() # 抬笔backward(300) # 后退300tree(12, 100) # 递归7层done()复制代码

    6、树

    275b2f0dac9842258ee3e7a9b316310f.jpg

    import turtleimport randomfrom turtle import *from time import sleept = turtle.Turtle()w = turtle.Screen()def tree(branchLen, t): if branchLen > 3: if 8 <= branchLen <= 12: if random.randint(0, 2) == 0: t.color('snow') else: t.color('lightcoral') t.pensize(branchLen / 3) elif branchLen < 8: if random.randint(0, 1) == 0: t.color('snow') else: t.color('lightcoral') t.pensize(branchLen / 2) else: t.color('sienna') t.pensize(branchLen / 10) t.forward(branchLen) a = 1.5 * random.random() t.right(20*a) b = 1.5 * random.random() tree(branchLen-10*b, t) t.left(40*a) tree(branchLen-10*b, t) t.right(20*a) t.up() t.backward(branchLen) 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)def main(): t = turtle.Turtle() myWin = turtle.Screen() getscreen().tracer(5, 0) turtle.screensize(bg='wheat') t.left(90) t.up() t.backward(150) t.down() t.color('sienna') tree(60, t) petal(100, t) myWin.exitonclick()main()复制代码

    7、树

    1d27269d5767443c8a2cc67c2151683e.jpg

    from turtle import *from random import *from math import *def tree(n, l): pd() t = cos(radians(heading() + 45)) / 8 + 0.25 pencolor(t, t, t) pensize(n / 4) forward(l) if n > 0: b = random() * 15 + 10 c = random() * 15 + 10 d = l * (random() * 0.35 + 0.6) right(b) tree(n - 1, d) left(b + c) tree(n - 1, d) right(c) else: right(90) n = cos(radians(heading() - 45)) / 4 + 0.5 pencolor(n, n, n) circle(2) left(90) pu() backward(l)bgcolor(0.5, 0.5, 0.5)ht()speed(0)tracer(0, 0)left(90)pu()backward(300)tree(13, 100)done()复制代码

    展开全文
  • 一、先上图一个同切圆和五角星上代码import turtle#同切圆turtle.pensize(2)turtle.circle(10)turtle.circle(40)turtle.circle(80)turtle.circle(160)#五角星from turtle import *color('red','yellow')begin_fill()...

    一、先上图

    1150043-20181210233919062-1547833602.png

    一个同切圆和五角星

    上代码

    import turtle

    #同切圆

    turtle.pensize(2)

    turtle.circle(10)

    turtle.circle(40)

    turtle.circle(80)

    turtle.circle(160)

    #五角星

    from turtle import *

    color('red','yellow')

    begin_fill()

    for i in range(5):

    fd(200)

    rt(144)

    end_fill()

    done()

    至于turtle库的用法,这里有教程链接 python绘图turtle库详解 https://blog.csdn.net/zengxiantao1994/article/details/76588580

    二、小猪佩奇

    1150043-20181210234606534-1964968411.png

    # coding:utf-8

    import turtle as t

    # 绘制小猪佩奇

    # =======================================

    t.pensize(4)

    t.hideturtle()

    t.colormode(255)

    t.color((255, 155, 192), "pink")

    t.setup(840, 500)

    t.speed(10)

    # 鼻子

    t.pu()

    t.goto(-100,100)

    t.pd()

    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.08

    t.lt(3) # 向左转3度

    t.fd(a) # 向前走a的步长

    else:

    a = a-0.08

    t.lt(3)

    t.fd(a)

    t.end_fill()

    t.pu()

    t.seth(90)

    t.fd(25)

    t.seth(0)

    t.fd(10)

    t.pd()

    t.pencolor(255, 155, 192)

    t.seth(10)

    t.begin_fill()

    t.circle(5)

    t.color(160, 82, 45)

    t.end_fill()

    t.pu()

    t.seth(0)

    t.fd(20)

    t.pd()

    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.pu()

    t.seth(90)

    t.fd(41)

    t.seth(0)

    t.fd(0)

    t.pd()

    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.pu()

    t.goto(-100, 100)

    t.pd()

    t.seth(-30)

    a = 0.4

    for i in range(60):

    if 0 <= i < 30 or 60 <= i <90:

    a = a+0.08

    t.lt(3) # 向左转3度

    t.fd(a) # 向前走a的步长

    else:

    a = a-0.08

    t.lt(3)

    t.fd(a)

    t.end_fill()

    # 耳朵

    t.color((255, 155, 192), "pink")

    t.pu()

    t.seth(90)

    t.fd(-7)

    t.seth(0)

    t.fd(70)

    t.pd()

    t.begin_fill()

    t.seth(100)

    t.circle(-50, 50)

    t.circle(-10, 120)

    t.circle(-50, 54)

    t.end_fill()

    t.pu()

    t.seth(90)

    t.fd(-12)

    t.seth(0)

    t.fd(30)

    t.pd()

    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.pu()

    t.seth(90)

    t.fd(-20)

    t.seth(0)

    t.fd(-95)

    t.pd()

    t.begin_fill()

    t.circle(15)

    t.end_fill()

    t.color("black")

    t.pu()

    t.seth(90)

    t.fd(12)

    t.seth(0)

    t.fd(-3)

    t.pd()

    t.begin_fill()

    t.circle(3)

    t.end_fill()

    t.color((255, 155, 192), "white")

    t.pu()

    t.seth(90)

    t.fd(-25)

    t.seth(0)

    t.fd(40)

    t.pd()

    t.begin_fill()

    t.circle(15)

    t.end_fill()

    t.color("black")

    t.pu()

    t.seth(90)

    t.fd(12)

    t.seth(0)

    t.fd(-3)

    t.pd()

    t.begin_fill()

    t.circle(3)

    t.end_fill()

    # 腮

    t.color((255, 155, 192))

    t.pu()

    t.seth(90)

    t.fd(-95)

    t.seth(0)

    t.fd(65)

    t.pd()

    t.begin_fill()

    t.circle(30)

    t.end_fill()

    # 嘴

    t.color(239, 69, 19)

    t.pu()

    t.seth(90)

    t.fd(15)

    t.seth(0)

    t.fd(-100)

    t.pd()

    t.seth(-80)

    t.circle(30, 40)

    t.circle(40, 80)

    # 身体

    t.color("red", (255, 99, 71))

    t.pu()

    t.seth(90)

    t.fd(-20)

    t.seth(0)

    t.fd(-78)

    t.pd()

    t.begin_fill()

    t.seth(-130)

    t.circle(100,10)

    t.circle(300,30)

    t.seth(0)

    t.fd(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.pu()

    t.seth(90)

    t.fd(-40)

    t.seth(0)

    t.fd(-27)

    t.pd()

    t.seth(-160)

    t.circle(300,15)

    t.pu()

    t.seth(90)

    t.fd(15)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.seth(-10)

    t.circle(-20,90)

    t.pu()

    t.seth(90)

    t.fd(30)

    t.seth(0)

    t.fd(237)

    t.pd()

    t.seth(-20)

    t.circle(-300,15)

    t.pu()

    t.seth(90)

    t.fd(20)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.seth(-170)

    t.circle(20,90)

    # 脚

    t.pensize(10)

    t.color((240,128,128))

    t.pu()

    t.seth(90)

    t.fd(-75)

    t.seth(0)

    t.fd(-180)

    t.pd()

    t.seth(-90)

    t.fd(40)

    t.seth(-180)

    t.color("black")

    t.pensize(15)

    t.fd(20)

    t.pensize(10)

    t.color((240, 128, 128))

    t.pu()

    t.seth(90)

    t.fd(40)

    t.seth(0)

    t.fd(90)

    t.pd()

    t.seth(-90)

    t.fd(40)

    t.seth(-180)

    t.color("black")

    t.pensize(15)

    t.fd(20)

    # 尾巴

    t.pensize(4)

    t.color((255, 155, 192))

    t.pu()

    t.seth(90)

    t.fd(70)

    t.seth(0)

    t.fd(95)

    t.pd()

    t.seth(0)

    t.circle(70, 20)

    t.circle(10, 330)

    t.circle(70, 30)

    t.done()

    三、七段数码管日期显示

    1150043-20181210234803151-1378966664.png

    #七段数码管绘制

    import turtle

    import time

    def drawGap(): #控制数码管间隔

    turtle.penup()

    turtle.fd(5)

    def drawLine(draw):#绘制单段数码管

    drawGap()

    turtle.pendown() if draw else turtle.penup()

    turtle.fd(40)

    drawGap()

    turtle.rt(90)

    def drawDigit(digit):#根据数字绘制七段数码管

    drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)

    drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)

    drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)

    drawLine(True) if digit in [0,2,6,8] else drawLine(False)

    turtle.lt(90)

    drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)

    drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)

    drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)

    turtle.lt(180)

    turtle.penup()

    turtle.fd(20)

    def drawDate(date): #获得需要输出的数字 %Y-%m=%d+

    turtle.pencolor('red')

    for i in date:

    if i=='-':

    turtle.write('年',font=('Arial',24,'normal'))

    turtle.pencolor('yellow')

    turtle.fd(40)

    elif i=='=':

    turtle.write('月',font=('Arial',24,'normal'))

    turtle.pencolor('green')

    turtle.fd(40)

    elif i=='+':

    turtle.write('日',font=('Arial',24,'normal'))

    else:

    drawDigit(eval(i))

    def main():

    turtle.setup(800,350,200,200)

    turtle.penup()

    turtle.fd(-300)

    turtle.pensize(5)

    drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))

    turtle.hideturtle()

    turtle.done()

    main()

    以上三个小demo,都是用turtle库绘制完成的,turtle绘制方面,只有你想不到,没有他做不到的。

    最后推荐一个地址python绘画作品展示的地址,https://www.python123.io/index/turtle_drawing 里面有许多优秀的python 作品

    展开全文
  • 使用 Python Turtle 设计简单而又美丽的图形看看本文中这些美丽的图画。正是这样的事情让我爱上了 turtle。优秀的程序员会认为turtle是"落后原始的”,但我不敢苟同。在本教程中,我将用Python为turtle编写一个...

    使用 Python Turtle 设计简单而又美丽的图形

    看看本文中这些美丽的图画。正是这样的事情让我爱上了 turtle。优秀的程序员会认为turtle是"落后原始的”,但我不敢苟同。

    在本教程中,我将用Python为turtle编写一个非常简单的指南。

    turtle另一个伟大的用途是教孩子们基本的编程。年轻人更喜欢视觉上吸引人的设计,而不是枯燥的文字。

    现在让我们开始吧。

    全部源码下载见本文最后

    20012814522122.gif

    步骤1:Python

    在本教程中,我将使用Python 3.6.8。

    Ubuntu 18.04将Python3设置为Python默认版本 https://www.linuxboy.net/Linux/2019-12/161629.htm

    即使你不懂Python,也要了解下,一定要试着去学这门语言。在我看来,它是一种非常简单而强大的语言。

    Turtle是一个内置模块,简单地说,模块是易于调用的编程函数集合,即计算机要遵循的一组特定步骤以获取结果的命令。

    步骤2:第一个设计:代码和说明

    #后面的内容python是看不到的。

    from turtle import * #导入模块turtle,

    *代表所有

    speed(0) #将绘图速度设置为0,这是最快的

    代码:

    # python看不到#之后的内容。 这些是注释。 :)

    from turtle import * # 导入模块turtle,

    #* 代表所有,这使事情更容易

    speed(0) # 将绘制速度设置为0,这是最快的

    pencolor('red') # 将笔/线的颜色设置为红色

    bgcolor('black') # 将背景/画布的颜色设置为黑色

    x = 0 # 创建一个值为0的变量x

    up() # 抬起笔,所以没有画线

    #nota fd()表示向前移动,bk()表示向后移动

    # rt() 或 lt()表示向右倾斜一定角度

    rt(45)

    fd(90)

    rt(135)

    down() # 放下笔,以便乌龟可以画画

    while x < 120: # 当x的值小于120时,

    #不断地这样做:

    fd(200)

    rt(61)

    fd(200)

    rt(61)

    fd(200)

    rt(61)

    fd(200)

    rt(61)

    fd(200)

    rt(61)

    fd(200)

    rt(61)

    rt(11.1111))

    x = x+1 # adds 1 to the value of x,

    # 所以每次循环后都接近120

    exitonclick() # 当您单击时,乌龟退出。

    #就这样! 尝试自定义脚本!

    效果图如下:

    20012814514967.png

    代码很简单 speed(), pencolor(), fd(), rt(), lt()等都是函数。基本上它们是Python要遵循的指令。

    我们不如试着用简单的逻辑去创造更漂亮的设计。

    第3步:二次设计:酷炫的螺旋图形

    我该说什么呢?这段代码的美妙之处在于,它每次运行时都会生成一个独特的颜色组合。

    代码如下:

    from turtle import *

    from random import randint # 从random 模块导入函数randint

    #turtle是一个模块,请提前阅读以使用

    speed(0)

    bgcolor('black')

    x = 1

    while x < 400:

    r = randint(0,255) # 使变量r,g,b为整型数,

    g = randint(0,255) # 在0到255之间。它是随机的

    b = randint(0,255) # 每次循环运行都会改变

    colormode(255) # 这个关系不大

    pencolor(r,g,b))# 将笔的颜色更改为RGB坐标

    # 由变量r,g,b每次改变获得

    fd(50 + x)

    rt(90.911)

    x = x+1

    exitonclick()

    #再次,尝试自定义:)

    效果图:

    20012814513142.png

    步骤4:总结

    到这一步,初学者可能会感到自豪,但你这样还没触及到表面。人们用Python把事情弄得像分形树一样复杂。

    如果你喜欢turtle,我们以后将分享更多关于turtle的文档。还有很多方面,比如填充和圆,做实验找乐趣。

    我希望这些能启发一些人,让他们继续学习Python。在我看来,它是最简单但功能最强大的编程语言。

    为了进一步加深您的印象,看看下面的彩虹三角代码及效果图。

    import turtle

    turtle.setup(width=600, height=500)

    turtle.reset()

    turtle.hideturtle()

    turtle.speed(0)

    turtle.bgcolor('black')

    c = 0

    x = 0

    colors = [

    #reddish colors

    (1.00, 0.00, 0.00),(1.00, 0.03, 0.00),(1.00, 0.05, 0.00),(1.00, 0.07, 0.00),(1.00, 0.10, 0.00),(1.00, 0.12, 0.00),(1.00, 0.15, 0.00),(1.00, 0.17, 0.00),(1.00, 0.20, 0.00),(1.00, 0.23, 0.00),(1.00, 0.25, 0.00),(1.00, 0.28, 0.00),(1.00, 0.30, 0.00),(1.00, 0.33, 0.00),(1.00, 0.35, 0.00),(1.00, 0.38, 0.00),(1.00, 0.40, 0.00),(1.00, 0.42, 0.00),(1.00, 0.45, 0.00),(1.00, 0.47, 0.00),

    #orangey colors

    (1.00, 0.50, 0.00),(1.00, 0.53, 0.00),(1.00, 0.55, 0.00),(1.00, 0.57, 0.00),(1.00, 0.60, 0.00),(1.00, 0.62, 0.00),(1.00, 0.65, 0.00),(1.00, 0.68, 0.00),(1.00, 0.70, 0.00),(1.00, 0.72, 0.00),(1.00, 0.75, 0.00),(1.00, 0.78, 0.00),(1.00, 0.80, 0.00),(1.00, 0.82, 0.00),(1.00, 0.85, 0.00),(1.00, 0.88, 0.00),(1.00, 0.90, 0.00),(1.00, 0.93, 0.00),(1.00, 0.95, 0.00),(1.00, 0.97, 0.00),

    #yellowy colors

    (1.00, 1.00, 0.00),(0.95, 1.00, 0.00),(0.90, 1.00, 0.00),(0.85, 1.00, 0.00),(0.80, 1.00, 0.00),(0.75, 1.00, 0.00),(0.70, 1.00, 0.00),(0.65, 1.00, 0.00),(0.60, 1.00, 0.00),(0.55, 1.00, 0.00),(0.50, 1.00, 0.00),(0.45, 1.00, 0.00),(0.40, 1.00, 0.00),(0.35, 1.00, 0.00),(0.30, 1.00, 0.00),(0.25, 1.00, 0.00),(0.20, 1.00, 0.00),(0.15, 1.00, 0.00),(0.10, 1.00, 0.00),(0.05, 1.00, 0.00),

    #greenish colors

    (0.00, 1.00, 0.00),(0.00, 0.95, 0.05),(0.00, 0.90, 0.10),(0.00, 0.85, 0.15),(0.00, 0.80, 0.20),(0.00, 0.75, 0.25),(0.00, 0.70, 0.30),(0.00, 0.65, 0.35),(0.00, 0.60, 0.40),(0.00, 0.55, 0.45),(0.00, 0.50, 0.50),(0.00, 0.45, 0.55),(0.00, 0.40, 0.60),(0.00, 0.35, 0.65),(0.00, 0.30, 0.70),(0.00, 0.25, 0.75),(0.00, 0.20, 0.80),(0.00, 0.15, 0.85),(0.00, 0.10, 0.90),(0.00, 0.05, 0.95),

    #blueish colors

    (0.00, 0.00, 1.00),(0.05, 0.00, 1.00),(0.10, 0.00, 1.00),(0.15, 0.00, 1.00),(0.20, 0.00, 1.00),(0.25, 0.00, 1.00),(0.30, 0.00, 1.00),(0.35, 0.00, 1.00),(0.40, 0.00, 1.00),(0.45, 0.00, 1.00),(0.50, 0.00, 1.00),(0.55, 0.00, 1.00),(0.60, 0.00, 1.00),(0.65, 0.00, 1.00),(0.70, 0.00, 1.00),(0.75, 0.00, 1.00),(0.80, 0.00, 1.00),(0.85, 0.00, 1.00),(0.90, 0.00, 1.00),(0.95, 0.00, 1.00)

    ]

    while x < 1000:

    idx = int(c)

    color = colors[idx]

    turtle.color(color)

    turtle.forward()

    turtle.right(98)

    x = x + 1

    c = c + 0.1

    turtle.exitonclick()

    效果图:

    20012814528885.png

    关注linuxboy微信公众号(linuxidc_com),(见https://www.linuxboy.net/Linux/2013-12/93755.htm)发送"162144”即可获得本文Python代码。

    https://www.linuxboy.net/topicnews.aspx?tid=17

    linuxboy的RSS地址:https://www.linuxboy.net/rssFeed.aspx

    本文永久更新链接地址:https://www.linuxboy.net/Linux/2020-01/162144.htm

    展开全文
  • turtle作品--落叶树

    千次阅读 多人点赞 2018-12-27 09:08:51
    记:最近研究python,偶然看到画图工具turtle做的一个作品,beautiful,记录下。 效果图 代码部分 from turtle import * from random import * from math import * def tree(n, l): pd() # 下笔 # 阴影效果 t...

    记:最近研究python,偶然看到画图工具turtle做的一个作品,beautiful,记录下。

    效果图
    在这里插入图片描述

    代码部分

    from turtle import *
    from random import *
    from math import *
    
    
    def tree(n, l):
        pd()  # 下笔
        # 阴影效果
        t = cos(radians(heading() + 45)) / 8 + 0.25
        pencolor(t, t, t)
        pensize(n / 3)
        forward(l)  # 画树枝
    
        if n > 0:
            b = random() * 15 + 10  # 右分支偏转角度
            c = random() * 15 + 10  # 左分支偏转角度
            d = l * (random() * 0.25 + 0.7)  # 下一个分支的长度
            # 右转一定角度,画右分支
            right(b)
            tree(n - 1, d)
            # 左转一定角度,画左分支
            left(b + c)
            tree(n - 1, d)
    
            # 转回来
            right(c)
        else:
            # 画叶子
            right(90)
            n = cos(radians(heading() - 45)) / 4 + 0.5
            pencolor(n, n * 0.8, n * 0.8)
            circle(3)
            left(90)
    
            # 添加0.3倍的飘落叶子
            if (random() > 0.7):
                pu()
                # 飘落
                t = heading()
                an = -40 + random() * 40
                setheading(an)
                dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2)
                forward(dis)
                setheading(t)
    
                # 画叶子
                pd()
                right(90)
                n = cos(radians(heading() - 45)) / 4 + 0.5
                pencolor(n * 0.5 + 0.5, 0.4 + n * 0.4, 0.4 + n * 0.4)
                circle(2)
                left(90)
                pu()
    
                # 返回
                t = heading()
                setheading(an)
                backward(dis)
                setheading(t)
    
        pu()
        backward(l)  # 退回
    
    
    bgcolor(0.5, 0.5, 0.5)  # 背景色
    ht()  # 隐藏turtle
    speed(0)  # 速度,1-10渐进,0最快
    tracer(0, 0)
    pu()  # 抬笔
    backward(100)
    left(90)  # 左转90度
    pu()  # 抬笔
    backward(300)  # 后退300
    tree(12, 100)  # 递归7层
    done()
    
    
    展开全文
  • turtle作品一个-------怒放的樱花

    万次阅读 多人点赞 2019-01-22 20:43:17
    学习完了turtle模块,花了两小时画了一幅樱花,希望大家喜欢。 迭代过程有点头疼,需要耐心思考,动笔画一下。 源代码如下: import turtle import random as rm angle1 = [55, 35, 45] angle2 = [15, 30, ...
  • 语言:PythonIDE:Python.IDE需求做出彩虹效果颜色空间RGB模型:光的三原色,共同决定色相HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相需要将HSB模型转换为RGB模型代码示例:#-*- coding:utf-8 –*-from turtle ...
  • 在Python中,有一个内置的绘图模块,就是turtle。我们可以用它来绘制一些有趣的图形。 多边形 1、三边的效果: 2、六边的效果: 是不是觉得非常挺炫酷的,但其实实现它的代码非常简单,仅仅10行Python代码就能实现...
  • turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制。turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言。turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了...
  • 画一个红色的五角星from turtle import *color('red','red')begin_fill()for i in range(5):fd(200)rt(144)end_fill()done()效果图:画一条蟒蛇#PythonDraw.pyimportturtle#turtle.setup(650,350,200,200)turtle....
  • 画一个海龟走两步的图 我们让海龟在图上走100步,然后再往下45度走100步 import turtle def draw_art(): window=turtle.Screen() window.bgcolor("blue") brad=turtle.Turtle()#创建一个Turtle的实例 brad.shape(...
  • 绘图之前先要安装turtle模块 python 2: pip install turtle python 3: pip3 install turtle 1.小猪佩奇: #!/usr/bin/env python2 # coding=utf-8 import turtle as t t.pensize(4) t.hideturtle() t.colormode...
  • 【实例简介】漂亮雪花【实例截图】【核心代码】from turtle import *from random import *def ground():#画下面的土地hideturtle() #隐藏乌龟speed(100) #速度for i in range(400):pensize(randint(5,10))#画笔尺寸x...
  • 原标题:Python turtle的多学科创意编程近日,以"智能时代,逐梦成长”为主题的第5届全国青少年创意编程与智能设计大赛正式开始,本届大赛增加了Python创意编程比赛。《中国科技教育》2019年第6期专题"...
  • 今天来介绍一下如何在turtle绘图窗口中添加按钮, 从而实现海龟库下一些交互式程序的开发。上一讲介绍了turtle源码中的类_Root,它是启动海龟绘图的根窗口类,继承于tkinter库的TK类,当运行以下代码时importturtler...
  • 1.环境pip install turtal如果安装失败:1.1 wget turtal的下载地址,自行解压...你的下载turtle路径"。2. 当导包turtal时,报错如下File "/usr/lib/python3.6/turtle.py", line 107, in import tki...
  • 今天栗子带大家进入皮卡丘的世界吧,利用Turtle绘制可可爱爱的多种皮卡丘哦~ ​ 正文 开始啦~绘制可可爱爱的皮卡丘,我先来~总有4款不一样的皮卡丘哦,你喜欢那款呢? (1)Part 1 绘制01皮卡丘 ​1.1 附完整...
  • 关于Python turtle 绘图

    2020-12-04 23:46:10
    python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可import turtle先说明一下turtle绘图的基础知识:1. 画布(canvas)画布就是turtle为我们展开用于...
  • python海龟turtle绘图实例教程

    万次阅读 2017-04-06 17:03:26
    python2.6版本中引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics) 1.使用海龟绘图首先我们需要导入turtle,如下所示:  from turtle import * #将turtle中的所有方法导入 2.海龟绘图属性:  (1)...
  • 一、先上图一个同切圆和五角星上代码import turtle#同切圆turtle.pensize(2)turtle.circle(10)turtle.circle(40)turtle.circle(80)turtle.circle(160)#五角星from turtle import *color('red','yellow')begin_fill()...
  • 10分钟轻松学会 Python turtle 绘图

    千次阅读 2021-02-03 01:01:41
    先说明一下turtle绘图的基础知识:1. 画布(canvas)画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置1.1 设置画布大小turtle.screensize(canvwidth=None, canvheight=None, bg=None)参数分别为...
  • 今天来介绍一下如何在turtle绘图窗口中添加任意多的画布。要学会如何在turtle绘图窗口中添加画布,我们要先来了解turtle模块中的重要类_Root.class_Root(TK.Tk):"""RootclassforScreenbasedonTkinter."""def__init__...
  • Python之turtle库画各种有趣的图及源码 基于Python-turtle库绘制皮卡丘 基于Python-turtle库绘制哆啦A梦和大雄在一起 基于Python-turtle库绘制小猪佩奇 基于Python-turtle库绘制路飞的草帽骷髅旗 基于Python-turtle...
  • Python Turtle绘图 鼠年画老鼠爷

    千次阅读 2020-01-21 18:17:46
    Python Turtle绘图 鼠年画老鼠爷目录效果图必要知识进入正题插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释...
  • Python之turtle库画各种有趣的图及源码(更新中)

    千次阅读 多人点赞 2021-02-08 18:19:12
    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形...
  • 主要为大家详细介绍了用Python的turtle模块画图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python turtle 海龟绘图,绘制小猪佩奇

    万次阅读 多人点赞 2018-09-11 09:57:29
    其实这个实现并不难,只要使用Python的内置模块turtle进行绘图即可。但是,如要完成一个好的作品,还是需要耗费一定时间的,因为你要提前布置好所有点的坐标和走线样式等,以及实际测试中会反复调试也比较麻烦。下面...
  • 原标题:[专题]在Python教学中应用turtle创意编程实践创意编程是用编程实现自己创意的过程。在2017年的信息技术新课程标准中,计算思维是信息技术的核心素养。计算思维是指利用计算机科学领域的思想方法,在形成问题...
  • #from turtle import* #未导入turtle包,但实际上从这个命名空间导入了所有的成员,所有直接使用命名空间内已经定义好的项目名称即可 import turtle #import turtle 是导入turtle包,不能使用未声明的变量.因此,要...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 261
精华内容 104
关键字:

turtle绘图作品