Python使用海龟绘图绘制哆啦A梦,螺旋炫彩正方形

通过自学Python海龟绘图,运用trutle的一系列方法绘制了一些图案,由于刚刚接触Python,代码可能繁多。

1.绘制螺旋炫彩正方形顾名思义就是使用递归循环控制每次选择的角度以及每次增长的大小,使用random使画笔每次循环中在255种颜色中随机选取从而使图案拥有不同颜色,同时在循环中使用if语句规定旋转到最后的长度,窗口的背景色可以使用bgcolor()自己选择颜色,也可以使用bgpic()运用自己下载的图片(不能太大,太大需要裁剪)作为背景。

import random
import turtle

p = turtle.Turtle()
# 创建海龟窗口
w = turtle.Screen()
# 设置窗口背景
w.bgpic("D:/Python项目/1.png")
# 画笔速度
p.speed(0)
turtle.colormode(255)


def rectangle(cnt):
    # 设置旋转次数
    if cnt > 580:
        return
    # 使画笔颜色随机
    a = random.randint(0, 255)
    b = random.randint(0, 255)
    c = random.randint(0, 255)
    p.pencolor(a, b, c)
    p.forward(cnt)
    p.right(90.5)
    rectangle(cnt + 1)


rectangle(1)
turtle.done()

 运行结果如下:

bfe32aade21544e4b544fc9a11b583d3.png

2. 绘制哆啦A梦主要需要正确找到以及准确定位到画笔的坐标和方向,最复杂的眼睛(椭圆)需要使用for循环嵌套if条件判断来实现,使用for循环将循环角度120度,if语句通过判断角度来判断画笔旋转方向[0, 30),[60,90)左转;[30, 60),[90, 120)右边,控制每次循环的角度(控制椭圆的胖瘦)。

import random
import turtle

turtle.colormode(255)


# 定义一个画笔移动坐标
def coordinate(x, y):
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()


# 头部
def head():
    # 设置画笔大小
    turtle.pensize(2)
    # 填充海蓝色
    turtle.fillcolor("#1E90FF")
    turtle.begin_fill()
    coordinate(0, 100)
    turtle.circle(150)
    turtle.end_fill()
    turtle.fillcolor("white")
    turtle.begin_fill()
    turtle.circle(115, 150)
    coordinate(-58, 315)
    turtle.left(60)
    turtle.circle(115, 150)
    coordinate(0, 328)
    turtle.right(90)
    # 使用for循环画两个椭圆眼睛
    long: float = 2.5
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            long -= 0.05
            turtle.forward(long)
            turtle.left(3)
        else:
            long += 0.05
            turtle.forward(long)
            turtle.left(3)
    turtle.right(180)
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            long -= 0.05
            turtle.forward(long)
            turtle.left(3)
        else:
            long += 0.05
            turtle.forward(long)
            turtle.left(3)
    turtle.end_fill()
    coordinate(33, 320)
    turtle.pensize(5)
    turtle.circle(10, 180)
    turtle.pensize(1)
    turtle.fillcolor("black")
    turtle.begin_fill()
    coordinate(-33, 320)
    turtle.circle(12)
    turtle.end_fill()
    turtle.fillcolor("white")
    turtle.begin_fill()
    coordinate(-20, 320)
    turtle.circle(5)
    turtle.end_fill()
    # 画鼻子
    turtle.fillcolor("red")
    turtle.begin_fill()
    coordinate(0, 305)
    turtle.right(90)
    turtle.circle(15)
    turtle.end_fill()
    # 画嘴巴
    coordinate(0, 275)
    turtle.left(90)
    turtle.forward(120)
    turtle.left(90)
    turtle.circle(90, 60)
    turtle.penup()
    turtle.left(120)
    turtle.forward(150)
    turtle.pendown()
    turtle.left(120)
    turtle.circle(90, 60)
    # 画胡子
    coordinate(30, 235)
    turtle.forward(70)
    coordinate(30, 225)
    turtle.right(20)
    turtle.forward(70)
    coordinate(30, 245)
    turtle.left(40)
    turtle.forward(70)
    coordinate(-30, 235)
    turtle.left(160)
    turtle.forward(70)
    coordinate(-30, 225)
    turtle.left(20)
    turtle.forward(70)
    coordinate(-30, 245)
    turtle.right(40)
    turtle.forward(70)


# 身体
def body():
    turtle.fillcolor("#1E90FF")
    turtle.begin_fill()
    turtle.penup()
    coordinate(-70, 118)
    turtle.seth(-28)
    turtle.circle(150, 60)
    turtle.pendown()
    turtle.right(10)
    turtle.forward(150)
    turtle.right(90)
    turtle.forward(70)
    turtle.right(80)
    turtle.forward(130)
    turtle.right(110)
    turtle.forward(15)
    turtle.right(180)
    turtle.circle(-1000, 15)
    turtle.right(85)
    turtle.forward(80)
    turtle.right(90)
    turtle.circle(60, 180)
    turtle.right(90)
    turtle.forward(85)
    turtle.right(85)
    turtle.circle(-1000, 15)
    coordinate(-133, 10)
    turtle.left(125)
    turtle.forward(90)
    turtle.right(90)
    turtle.forward(70)
    turtle.right(90)
    turtle.forward(183)
    coordinate(-70, 118)
    turtle.end_fill()
    turtle.seth(-28)
    turtle.circle(150, 10)
    turtle.fillcolor("white")
    turtle.begin_fill()
    turtle.right(137)
    turtle.circle(110, 312)
    turtle.left(41)
    turtle.circle(-150, 36)
    turtle.end_fill()
    coordinate(80, 0)
    turtle.left(108)
    turtle.circle(-80, 180)
    turtle.right(90)
    turtle.forward(160)


def bell():
    # 画围巾
    turtle.fillcolor("red")
    turtle.begin_fill()
    turtle.pensize(2)
    coordinate(-90, 120)
    turtle.forward(180)
    turtle.circle(-10, 180)
    turtle.forward(180)
    turtle.circle(-10, 180)
    turtle.end_fill()
    # 画铃铛
    turtle.fillcolor("yellow")
    turtle.begin_fill()
    coordinate(0, 75)
    turtle.circle(20)
    turtle.end_fill()
    turtle.fillcolor("black")
    turtle.begin_fill()
    coordinate(0, 85)
    turtle.circle(5)
    turtle.end_fill()
    turtle.right(90)
    turtle.pensize(5)
    turtle.forward(10)

    turtle.pensize(0)


# 画脚
def foot():
    coordinate(65, -230)
    turtle.fillcolor("white")
    turtle.begin_fill()
    turtle.left(90)
    turtle.forward(90)
    turtle.circle(15, 180)
    turtle.forward(90)
    turtle.circle(15, 180)
    coordinate(-140, -230)
    turtle.forward(90)
    turtle.circle(15, 180)
    turtle.forward(90)
    turtle.circle(15, 180)
    turtle.end_fill()


# 画手
def hand():
    coordinate(250, 116)
    turtle.fillcolor("white")
    turtle.begin_fill()
    turtle.circle(40)
    coordinate(-245, -48)
    turtle.circle(40)
    turtle.end_fill()


head()
body()
bell()
foot()
hand()
# 在右下方输出“哆啦A梦”
coordinate(200, -350)
# 使用random使每次输出字体颜色(255种)随机
a = random.randint(0, 255)
b = random.randint(0, 255)
c = random.randint(0, 255)
turtle.pencolor(a, b, c)
# 设置字体
turtle.write("哆啦A梦", font=("华文行楷", 40, 'italic'))
turtle.done()

运行结果如下:

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很好,让我来为您解答。您可以使用Python turtle模块绘制哆啦A梦。这里有一些绘制哆啦A梦的示例代码,您可以在Python IDLE或其他编程环境中运行它们: ```python # 导入turtle模块 import turtle # 设置画笔 turtle.pensize(4) turtle.pencolor("black") # 绘制哆啦A梦的头 turtle.circle(100) # 绘制哆啦A梦的耳朵 turtle.penup() turtle.goto(50, 190) turtle.pendown() turtle.circle(30) turtle.penup() turtle.goto(-50, 190) turtle.pendown() turtle.circle(30) # 绘制哆啦A梦的眼睛和鼻子 turtle.penup() turtle.goto(-25, 60) turtle.pendown() turtle.circle(25) turtle.penup() turtle.goto(25, 60) turtle.pendown() turtle.circle(25) turtle.penup() turtle.goto(0, 40) turtle.dot(30) # 绘制哆啦A梦的嘴巴 turtle.penup() turtle.goto(-60, -20) turtle.pendown() turtle.right(90) turtle.circle(60, 180) # 绘制哆啦A梦的身体 turtle.penup() turtle.goto(-100, -120) turtle.pendown() turtle.begin_fill() turtle.forward(200) turtle.right(90) turtle.circle(100, 180) turtle.right(90) turtle.forward(200) turtle.right(90) turtle.circle(100, 180) turtle.end_fill() # 绘制哆啦A梦的手和脚 turtle.penup() turtle.goto(-120, -120) turtle.pendown() turtle.begin_fill() turtle.forward(40) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.end_fill() turtle.penup() turtle.goto(80, -120) turtle.pendown() turtle.begin_fill() turtle.forward(40) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.end_fill() turtle.penup() turtle.goto(-70, -250) turtle.pendown() turtle.begin_fill() turtle.circle(30) turtle.end_fill() turtle.penup() turtle.goto(70, -250) turtle.pendown() turtle.begin_fill() turtle.circle(30) turtle.end_fill() # 隐藏画笔 turtle.hideturtle() # 完成绘制 turtle.done() ``` 希望这个代码能帮到您。如果您有更多的问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值