百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Python中turtle库函数,设计各种图案,penup,pendown,tracer

toyiye 2024-08-17 23:48 8 浏览 0 评论

图案一:

import turtle

turtle.pensize(2)

turtle.bgcolor("black")

colors = ["purple","red","blue","yellow"]

#一次性画好

turtle.tracer(True)

for x in range(400):

turtle.forward(2*x)

turtle.color(colors[x % 4])

turtle.left(172+(x % 4))

turtle.done()



图案二:

import turtle

turtle.pensize(2)

turtle.bgcolor("black")

colors = ["purple","red","blue","yellow"]

#一次性画好

turtle.tracer(False)

for x in range(400):

turtle.forward(2*x)

turtle.color(colors[x % 4])

turtle.left(38)

turtle.done()


图案三:

import turtle

#一次性画好,0=False

turtle.tracer(0)

#背景颜色设置

turtle.bgcolor("black")

def draw_pic(x):

for i in range(1, x + 1):

turtle.left(5)

turtle.width(3)

turtle.color("orange")

turtle.forward(200)

turtle.right(60)

turtle.color("red")

turtle.forward(100)

turtle.right(60)

turtle.color("green")

turtle.forward(200)

turtle.right(60)

turtle.color("purple")

turtle.forward(100)

turtle.ht()

draw_pic(100)

turtle.done()


图案四:import turtle

#一次性画好,0=False

turtle.tracer(0) #注释掉可以观看过程

#背景颜色设置

turtle.bgcolor("black")

def draw_pic(i):

for i in range(1, i + 1):

turtle.left(5)

turtle.width(1) # 画笔粗细

turtle.color("orange")

turtle.forward(200)

turtle.right(90) # 顺时针旋转90°

turtle.color("red")

turtle.forward(100)

turtle.right(90) # 顺时针旋转90°

turtle.color("green")

turtle.forward(200)

turtle.right(90) # 顺时针旋转90°

turtle.color("purple")

turtle.forward(100)

turtle.ht()

draw_pic(100)

turtle.done()


图案五:

import turtle as t

t.bgcolor("black")

sides=6 #6边

colors=["red","yellow","green","blue","orange","purple"]

#120为圈数,层数

for x in range(120):

t.pencolor(colors[x%sides])

t.forward(x*3/sides+x)

t.left(360/sides+1)

t.width(x*sides/200)

t.done()


图案六:螺旋线图案

# 显示螺旋线

import turtle # 导入turtle模块

t=turtle.Pen()

t.color("red")

for x in range(360): #循环

t.forward(x)

t.left(59)


图案七:八卦太极图

import turtle as t

import math

#第2步:窗口设置并注册窗口,退出设置

taiji = t.Screen()

taiji.bgcolor('yellow') #背景颜色

taiji.setup(1000,1000) #宽、高

taiji.title("旋转的太极八卦图") #窗口标题名

#隐藏画笔

t.hideturtle()

#判断是否要退出

running = True

#定义停止函数

def stop_loop():

global running

running = False

#获取窗口的Tk对象,并注册关闭事件

root = taiji.getcanvas().winfo_toplevel()

root.protocol('WM_DELETE_WINDOW',stop_loop)

#第3步:定义圆函数

#radius可以看作半径,extent是角度。fc填充的颜色,默认为白色。

def yuan(radius, extent=None, fc='white'):

# setheading是保证当次循环是同一朝向。

t.setheading(d_num)

t.forward(radius)

t.left(90)

t.down()

t.fillcolor(fc)

t.begin_fill()

t.circle(radius, extent)

t.end_fill()

t.up()

t.right(90)

t.back(radius)

#第4步:八卦图

def baguaxiantu():

t.pencolor("red") #笔的颜色

t.pensize(8) #笔头的大小(粗细)

#长度

length = 80

#八卦的半径

r_list = [260, 280, 300]

line_lists = [[0, 1, 0, 0, 1, 1, 0, 1],

[1, 1, 0, 0, 0, 1, 1, 0],

[0, 1, 1, 0, 1, 0, 1, 0]]


for r, line_list in zip(r_list, line_lists):

t.penup()

t.goto(0, 0)

t.seth(112.5)

t.forward(r)

t.seth(0)

t.pendown()

side = math.sin(math.radians(22.5))*r*2

for i in line_list:

t.penup()

t.forward((side-length)/2)

t.pendown()

if i == 0:

t.forward(length)

else:

t.forward(length*0.375)

t.penup()

t.forward(length*0.25)

t.pendown()

t.forward(length*0.375)

t.penup()

t.forward((side-length)/2)

t.pendown()

t.right(45)

#第5步:画文字函数定义

def wenzi():

t.penup()

t.goto(0, 0)

t.seth(90)

zi_list=['离','坤','兑','乾','坎','艮','震','巽']

zi_r=340

x = math.sin(math.radians(45))*zi_r

y= math.cos(math.radians(45))*zi_r


#文字的x和y坐标点列表

#未添加偏移量

#x_list=[0,x,zi_r,x,0,-x,-zi_r,-x]

#y_list=[zi_r,y,0,-y,-zi_r,-y,0,y]


#纠正偏移量,可微调

x_list=[-20,x-20,zi_r-20,x,0,-x,-zi_r,-x]

y_list=[zi_r-20,y-20,-20,-y,-zi_r,-y,0,y-20]

for i in range(len(zi_list)):

t.penup()

t.pencolor("green")

#文字坐标点

t.goto(x_list[i],y_list[i])

t.pendown()

t.write(zi_list[i],font=("Arial",12,"normal"))

t.penup()

t.pencolor("black")

t.penup()

#第6步:调用画八卦图和文字函数

baguaxiantu()

wenzi()

#定义移动变量

d_num = a_num =8

#第7步:主循环

while running: #此处将True换为running

t.goto(0, 0)

t.tracer(0, 0)

# 画个黑半圆

yuan(200, extent=180, fc='black')

# 画个白半圆

yuan(200, extent=-180)

# 向前100,画个黑半圆

t.forward(100)

yuan(100, extent=-180, fc='black')

# 向后200,画个白半圆

t.back(200)

yuan(100, extent=180)

# 顺便画个小黑圆,比白圆大点是因为白圆还有边框,显得大

yuan(33, fc='black')

# 向后200,画个小白圆

t.back(200)

yuan(30)

# 延时10毫秒,不加这句的话,因为tracer(0,0)是画完才显示,会导致一直啥都画不出来。

t.tracer(1, 10)

# 然后下次循环的goto在tracer(0,0)之前这个很有讲究。这相当于是tracer(1,10)执行的一个语句。

# 如果没有的话,会导致tracer(1,10)直接被tracer(0,0)覆盖,还是会什么也画不出来。。

#逆时针旋转

#d_num -= a_num

#顺时针旋转

d_num -= a_num

if d_num > 360:

d_num -= 360


相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码