python turtle画彩虹的代码,python turtle画图代码大全

大家好,小编来为大家解答以下问题,python turtle画彩虹的代码,python turtle画图代码大全,今天让我们一起来看看吧!

基本功能介绍

在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动。这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条python自动化运维。通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片。使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动。这能够帮助我们理解代码的逻辑。所以海龟作图也常被用作新手学习 Python 的一种方式。

python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可 import turtle

1. 画布(canvas)

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置

1.1 设置画布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None)
参数分别为画布的宽(单位像素), 高, 背景颜色
如:

turtle.screensize(800, 600, "green")
turtle.screensize() #返回默认大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
参数:
width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例
(startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心
如:

turtle.setup(width=0.8, height=0.6)
turtle.setup(width=800, height=600, startx=200, starty=200)

2. 画笔

2.1 画笔的状态

在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟. 这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态

2.2 画笔的属性

画笔(画笔的属性,颜色、画线的宽度)

  1. turtle.pensize():设置画笔的宽度;

  2. turtle.pencolor(); 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", “red”,也可以是RGB 3元组,

    >>> pencolor('brown')
    >>> tup = (0.2, 0.8, 0.55)
    >>> pencolor(tup)
    >>> pencolor()
    '#33cc8c'
    
  3. turtle.speed(speed): 设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越大越快

2.3 绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为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.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”,font_size,“font_type”)])写文本,s为文本内容,font是字体的参数,里面分别为字体名称,大小和类型;font为可选项, font的参数也是可选项

3. 命令详解

3.1 turtle.circle(radius, extent=None, steps=None)
描述: 以给定半径画圆
参数:
radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)
举例:
circle(50) # 整圆;
circle(50,steps=3) # 三角形;
circle(120, 180) # 半圆

4. 绘制例子

#PythonDraw.py
import turtle #海龟库是turtle绘图的pyhon实现
turtle.setup(650,350,200,200)#turtle.setup(with,height,startx,starty) 设置窗体的大小及位置
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()

'''
turtle.goto(x,y) 海龟从摸个位置去到达(x,y)的坐标位置
turtle.fd(d) 向海龟的正前方向运行
turtle.bk(d) 向海龟的反方向运行
turtle.circle(r,angle) 以海龟的当前位置,左侧的某一个点为圆心,进行曲线运行
turtle.seth(angle) 改变海龟的行径角度,只是改变行径的方向(绝对角度)
turtle.left(angle) 当前的海龟向左或者向右改变运行的方向
turtle.right(angle)

turtle.colormode(mode) 颜色模块
-1.0: RGB小数值模块
-255:RGB整数值模块

import <库名>
<库名>.<函数>(<函数参数>)

from <库名> import <函数名>
from <库名> import*
<函数名>(<函数参数>)

import <库名> as <库别名>
<库别名>.<函数> (<函数参数>)

turtle.penup() 抬起画笔,海龟在飞行         别名  turtle.pu()
turtle.pendown() 画笔落下,海龟爬行               turtle.pd()
turtle.pensize(width) 画笔宽度,海龟的腰围        turtle.width(width)
turtle.pencolot(colot) color为颜色字符串或r,g,b值

for <变量> in range (<函数名>)
    <被循环执行的语句>
-<变量>表示每次循环的计数,0到<次数>1

range()函数
-range(N)
 产生0到N-1的整数序列,共N个
-range(M,N)
 产生M到N-1的整数序列,共N-M个
'''

在这里插入图片描述

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

在这里插入图片描述

#绘制哆啦A梦
import turtle as t

t.speed(10)
t.pensize(8)
t.hideturtle()
t.screensize(500, 500, bg='white')
 
# 猫脸
t.fillcolor('#00A1E8')
t.begin_fill()
t.circle(120)
t.end_fill()
 
t.pensize(3)
t.fillcolor('white')
t.begin_fill()
t.circle(100)
t.end_fill()

t.pu()
t.home()
t.goto(0, 134)
t.pd()
t.pensize(4)
t.fillcolor("#EA0014")
t.begin_fill()
t.circle(18)
t.end_fill()
 
t.pu()
t.goto(7, 155)
t.pensize(2)
t.color('white', 'white')
t.pd()
t.begin_fill()
t.circle(4)
t.end_fill()

t.pu()
t.goto(-30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
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.goto(30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
t.begin_fill()
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.goto(-38,190)
t.pensize(8)
t.pd()
t.right(-30)
t.forward(15)
t.right(70)
t.forward(15)
 
t.pu()
t.goto(15, 185)
t.pensize(4)
t.pd()
t.color('black', 'black')
t.begin_fill()
t.circle(13)
t.end_fill()
 
t.pu()
t.goto(13, 190)
t.pensize(2)
t.pd()
t.color('white', 'white')
t.begin_fill()
t.circle(5)
t.end_fill()
 
t.pu()
t.home()
t.goto(0, 134)
t.pensize(4)
t.pencolor('black')
t.pd()
t.right(90)
t.forward(40)

t.pu()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(10)
t.forward(80)
 
t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(6)
t.forward(80)

t.pu()
t.home()
t.goto(0,104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(0)
t.forward(80)

 

# 左边的胡子
t.pu()
t.home()
t.goto(0,124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(170)
t.forward(80)

t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(174)
t.forward(80)

t.pu()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(180)
t.forward(80)

t.pu()
t.goto(-70, 70)
t.pd()
t.color('black', 'red')
t.pensize(6)
t.seth(-60)
t.begin_fill()
t.circle(80,40)
t.circle(80,80)
t.end_fill()

t.pu()
t.home()
t.goto(-80,70)
t.pd()
t.forward(160)
 
t.pu()
t.home()
t.goto(-50,50)
t.pd()
t.pensize(1)
t.fillcolor("#eb6e1a")
t.seth(40)
t.begin_fill()
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(40)
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(220)
t.circle(-80, 40)
t.circle(-80, 40)
t.end_fill()

 

# 领带
t.pu()
t.goto(-70, 12)
t.pensize(14)
t.pencolor('red')
t.pd()
t.seth(-20)
t.circle(200, 30)
t.circle(200, 10)
 
# 铃铛
t.pu()
t.goto(0, -46)
t.pd()
t.pensize(3)
t.color("black", '#f8d102')
t.begin_fill()
t.circle(25)
t.end_fill()

t.pu()
t.goto(-5, -40)
t.pd()
t.pensize(2)
t.color("black", '#79675d')
t.begin_fill()
t.circle(5)
t.end_fill()

t.pensize(3)
t.right(115)
t.forward(7)


#大
t.pu()
t.goto(-60,-100)
t.seth(0)
t.pd()
t.pensize(8)
t.pencolor("purple")
t.fd(60)
t.fd(-30)
t.pu()
t.goto(-30,-80)
t.seth(-90)
t.pd()
t.fd(20)

t.pu()
t.goto(-30,-100)
t.pd()
t.seth(-135)
t.fd(40)

t.pu()
t.goto(-30,-100)
t.pd()
t.seth(-45)
t.fd(40)


#大
t.pu()
t.goto(10,-100)
t.seth(0)
t.pd()
t.pensize(8)
t.pencolor("purple")
t.fd(60)
t.fd(-30)
t.pu()
t.goto(40,-80)
t.seth(-90)
t.pd()
t.fd(20)

t.pu()
t.goto(40,-100)
t.pd()
t.seth(-135)
t.fd(40)

t.pu()
t.goto(40,-100)
t.pd()
t.seth(-45)
t.fd(40)

t.mainloop()

在这里插入图片描述

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python turtle是一个非常有趣的绘图工具,可以用来绘制各种形状和图案。以下是一些常见的Python turtle画图代码: 1. 绘制正方形: import turtle turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) 2. 绘制五角星: import turtle turtle.color("red") turtle.begin_fill() for i in range(5): turtle.forward(100) turtle.right(144) turtle.end_fill() 3. 绘制圆形: import turtle turtle.circle(50) 4. 绘制螺旋线: import turtle for i in range(100): turtle.forward(i) turtle.right(90) 5. 绘制三角形: import turtle turtle.forward(100) turtle.left(120) turtle.forward(100) turtle.left(120) turtle.forward(100) 以上是一些常见的Python turtle画图代码,可以根据需要进修改和扩展。 ### 回答2: Python turtle是一个非常好用的绘图工具,它可以很快地帮助我们创造出一些简单、生动的图。在使用Turtle图形绘制时,我们可以在图形绘制的同时,通过学习Turtle的运用,提高我们的Python编程能力。 以下是一些Python turtle画图代码: 1.正方形: import turtle turtle.speed(10) turtle.color("red") for i in range(4): turtle.forward(100) turtle.right(90) 2.三角形: import turtle turtle.speed(5) turtle.color("blue") for i in range(3): turtle.forward(100) turtle.left(120) 3.五角星: import turtle turtle.speed(5) turtle.color("purple") for i in range(5): turtle.forward(100) turtle.right(144) 4.六边形: import turtle turtle.speed(5) turtle.color("green") for i in range(6): turtle.forward(100) turtle.right(60) 5.圆形: import turtle turtle.speed(5) turtle.circle(50) 6.心形: import turtle turtle.speed(10) turtle.color("pink") turtle.left(45) turtle.forward(100) turtle.circle(50, 180) turtle.right(90) turtle.circle(50, 180) turtle.forward(100) 7.菱形: import turtle turtle.speed(5) turtle.color("orange") turtle.left(45) turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) Python turtle是一个非常有趣、易学易用、充满趣味的图形绘制工具,我们可以通过不断的实践和探索,来不断提高我们的交互式编程技能。 ### 回答3: Pythonturtle 库是一个非常有趣和常用的绘图工具,可以通过简单的代码绘制有趣的图形和动,而且非常易学易用。本文将为大家介绍一些常用的 turtle 绘图代码和技巧,帮助读者更好地使用 turtle 库。 1. 前进和后退 使用 turtle 绘图时,最基本的操作就是前进和后退,可以通过向前和向后方法 forward() 和 backward() 来实现。例如: ```python import turtle turtle.forward(100) #向前移动100个像素 turtle.backward(100) #向后移动100个像素 turtle.done() #完成后关闭窗口 ``` 2. 左右转向 除了前进和后退,turtle 还可以左右转向,可以通过左右方法 left() 和 right() 来实现。例如: ```python import turtle turtle.left(90) #向左旋转90度 turtle.right(90) #向右旋转90度 turtle.done() #完成后关闭窗口 ``` 3. 圆和弧线 turtle 还可以圆和弧线,可以通过 circle() 和 circle(半径, 角度) 方法来实现。例如: ```python import turtle turtle.circle(50) # 半径为50的圆 turtle.circle(50, 180) # 半径为50的圆的一半 turtle.done() #完成后关闭窗口 ``` 4. 多边形 除了圆和弧线,turtle 还可以出多边形,可以通过 for 循环和 forward() 方法来实现,例如: ```python import turtle n = 6 # 多边形边数 angle = 360 / n # 多边形内角度数 for i in range(n): turtle.forward(100) turtle.left(angle) turtle.done() #完成后关闭窗口 ``` 5. 颜色和填充 turtle 还可以设置不同的颜色和填充效果,可以通过 color() 和 fillcolor() 方法来实现。例如: ```python import turtle turtle.color("red", "yellow") turtle.begin_fill() turtle.circle(50) turtle.end_fill() turtle.done() #完成后关闭窗口 ``` 6. 图形重复 turtle 还可以通过 dot 和 stamp() 方法来重复绘制图形,例如: ```python import turtle turtle.dot(50) # 绘制圆点 turtle.stamp() # 重复绘制当前图形 turtle.done() #完成后关闭窗口 ``` 7. 自定义图形 turtle 还可以通过 register_shape() 方法来注册自定义图形。需要先定义一个列表,将像素的 x 和 y 坐标值依次添加到列表中,最后调用 register_shape() 方法。例如: ```python import turtle my_shape = ((0,0), (50,0), (50,50), (0,50)) # 定义自定义图形 turtle.register_shape("myshape", my_shape) # 注册自定义图形 turtle.shape("myshape") # 使用自定义图形 turtle.done() #完成后关闭窗口 ``` 8. 绘制文本 turtle 还可以绘制文本,可以通过 write() 方法来实现。例如: ```python import turtle turtle.write("Hello, world!") # 绘制文本 turtle.done() #完成后关闭窗口 ``` 9. 清屏和控制速度 turtle 还可以清屏和控制绘速度,可以通过 clear() 和 speed() 方法来实现。例如: ```python import turtle turtle.speed(1) # 设置绘速度 turtle.clear() # 清空屏幕 turtle.done() #完成后关闭窗口 ``` 以上是常用的 turtle 绘图代码和技巧,可以让读者更好地使用 turtle 绘图。当然,还有许多其他使用方法,希望读者可以通过更多练习和查阅官方文档来深入掌握 turtle 库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值