Python海龟画图集合

Python海龟画图集合


1. 小猪佩奇

2. 彩色螺旋线

3. 太极

4.美国队长盾牌


1. 小猪佩奇
# coding: utf-8

import turtle as t

t.screensize(400, 300)
t.pensize(4) # 设置画笔的大小
t.colormode(255) # 设置GBK颜色范围为0-255
t.color((255,155,192),"pink") # 设置画笔颜色和填充颜色(pink)
t.setup(840,500) # 设置主窗口的大小为840*500
t.speed(10) # 设置画笔速度为10
#鼻子
t.pu() # 提笔
t.goto(-100,100) # 画笔前往坐标(-100,100)
t.pd() # 下笔
t.seth(-30) # 笔的角度为-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) # 笔的角度为90度
t.fd(25) # 向前移动25
t.seth(0) # 转换画笔的角度为0
t.fd(10)
t.pd()
t.pencolor(255,155,192) # 设置画笔颜色
t.seth(10)
t.begin_fill()
t.circle(5) # 画一个半径为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) # 顺时针画一个半径为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()

小猪佩奇


2. 彩色螺旋线

https://blog.csdn.net/weixin_38915701/article/details/79308578

from turtle import *
from time import *
import turtle
t = Turtle()
t.pensize(2)
turtle.bgcolor("black")
colors = ["red", "yellow", 'purple', 'blue']
t._tracer(False)
for x in range(400):
    t.forward(2*x)
    t.color(colors[x % 4])
    t.left(91)
t._tracer(True)
done()

彩色螺旋线


3. 太极
import turtle
turtle.speed(1)
turtle.pensize(4)

turtle.color('black', 'black')
turtle.begin_fill()
#右中圆
turtle.circle(50,180)
#左大圆
turtle.circle(100,180)
#左中圆
turtle.left(180)
turtle.circle(-50,180)
turtle.end_fill()

turtle.color('white', 'white')
turtle.begin_fill()
#上小圆
turtle.left(90)
turtle.penup()
turtle.forward(35)
turtle.right(90)
turtle.pendown()
turtle.circle(15)
turtle.end_fill()

turtle.color('black', 'black')
turtle.begin_fill()
#下小圆
turtle.left(90)
turtle.penup()
turtle.backward(70)
turtle.pendown()
turtle.left(90)
turtle.circle(15)
turtle.end_fill()

#右大圆
turtle.right(90)
turtle.up()
turtle.backward(65)
turtle.right(90)
turtle.down()
turtle.circle(100, 180)

turtle.done()

太极


4.美国队长盾牌

https://blog.csdn.net/csdnsevenn/article/details/81151287

import turtle

t = turtle.Turtle()

def setpen(x, y):
   # 抬笔
   t.penup()
   # 移动画笔到(x, y)
   t.goto(x, y)
   # 落笔
   t.pendown()
   t.setheading(0)
def circle(x, y, r, color):
   # 为了保证画出的圆够圆,所以我们把圆的边设置的多一些
   n = 36
   angle = 360 / n
   pi = 3.1415926
   # 周长
   c = 2 * pi * r
   # 每条边的长度
   l = c / n
   # 起始位置
   start_x = x - l / 2
   start_y = y + r
   # 移动画笔
   setpen(start_x, start_y)
   # 选择画笔颜色
   t.pencolor(color)
   # 选择背景色
   t.fillcolor(color)
   # 填充
   t.begin_fill()
   for i in range(n):
       t.forward(l)
       t.right(angle)
   t.end_fill()
def five_star(l):
   setpen(0, 0)
   t.setheading(162)
   t.forward(150)
   t.setheading(0)
   t.fillcolor('WhiteSmoke')
   t.begin_fill()
   t.hideturtle()
   t.penup()
   for i in range(5):
       t.forward(l)
       t.right(144)
   t.end_fill()
def sheild():
   circle(0, 0, 300, 'red')
   circle(0, 0, 250, 'white')
   circle(0, 0, 200, 'red')
   circle(0, 0, 150, 'blue')
   five_star(284)


if __name__ == '__main__':
   sheild()
   # 结束乌龟图
   turtle.done()

美国队长盾牌

### 海龟绘图经典 海龟绘图(Turtle Graphics)是一种通过编程控制虚拟画笔绘制图形的方法,在Python中非常受欢迎。下面是一个经典的螺旋线绘制子[^1]: ```python import turtle def draw_spiral(): window = turtle.Screen() window.bgcolor("white") brad = turtle.Turtle() brad.shape("turtle") brad.color("black") increase = 0.1 for i in range(720): forward_distance = i * increase brad.forward(forward_distance) brad.right(91) draw_spiral() turtle.done() ``` 这段代码创建了一个窗口并设置背景颜色为白色,定义了一只名为`brad`的乌龟对象来执行绘画操作。通过循环逐步增加前进距离和旋转角度实现螺旋效果。 另一个常见的练习是绘制正多边形,比如五角星: ```python import turtle def draw_star(points=5, size=100): angle = 180 - (180 / points) star = turtle.Turtle() for _ in range(points): star.forward(size) star.right(angle) window = turtle.Screen() draw_star(5, 200) window.exitonclick() ``` 此函数接受两个参数:顶点数量(`points`)以及每条边长度(`size`)。内部计算转角大小并通过for循环完成星星形状的绘制工作。 对于更复杂的图案如雪花曲线也可以利用递归来构建: ```python from turtle import * def koch_curve(turtle, iterations, length): if iterations == 0: turtle.forward(length) else: iterations -= 1 length /= 3.0 koch_curve(turtle, iterations, length) turtle.left(60) koch_curve(turtle, iterations, length) turtle.right(120) koch_curve(turtle, iterations, length) turtle.left(60) koch_curve(turtle, iterations, length) screen = Screen() pen = Pen() koch_curve(pen, 3, 200) done() ``` 上述程序展示了如何使用分形几何原理生成复杂而美丽的图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香自寒来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值