Python作业3 绘制田字格
点击查看代码
import turtle
def draw_grid():
# 设置画布和海龟
turtle.speed(1) # 设置画笔速度
turtle.penup() # 抬起画笔,移动时不画线
# 绘制田字格的外框
turtle.goto(-100, -100) # 移动到左下角
turtle.pendown() # 放下画笔,开始画线
for _ in range(4): # 画一个正方形
turtle.forward(200) # 向前移动200单位
turtle.left(90) # 左转90度
# 绘制两条中线
# 水平中线
turtle.penup()
turtle.goto(-100, 0) # 移动到水平中线的左端
turtle.pendown()
turtle.forward(200) # 画水平中线
# 垂直中线
turtle.penup()
turtle.goto(0, -100) # 移动到垂直中线的下端
turtle.pendown()
turtle.left(90) # 转向垂直方向
turtle.forward(200) # 画垂直中线
# 绘制田字格的里面
turtle.penup()
turtle.goto(-80, -80) # 移动到左下角
turtle.pendown() # 放下画笔,开始画线
for _ in range(4): # 画一个正方形
turtle.forward(150) # 向前移动200单位
turtle.right(90) # 左转90度
# 绘制对角线(虚线)
def draw_dashed_line(start_x, start_y, end_x, end_y):
turtle.penup()
turtle.goto(start_x, start_y)
turtle.pendown()
distance = ((end_x - start_x) ** 2 + (end_y - start_y) ** 2) ** 0.5
dash_length = 10 # 虚线的每段长度
space_length = 5 # 虚线的间隔长度
angle = turtle.towards(end_x, end_y) # 计算目标方向
turtle.setheading(angle) # 设置画笔方向
for _ in range(int(distance // (dash_length + space_length))):
turtle.pendown()
turtle.forward(dash_length)
turtle.penup()
turtle.forward(space_length)
# 画最后一段
remaining = distance % (dash_length + space_length)
if remaining > dash_length:
turtle.pendown()
turtle.forward(dash_length)
turtle.penup()
turtle.forward(remaining - dash_length)
else:
turtle.pendown()
turtle.forward(remaining)
# 绘制左上到右下的对角线
draw_dashed_line(-100, 100, 100, -100)
# 绘制左下到右上的对角线
draw_dashed_line(-100, -100, 100, 100)
# 隐藏海龟
turtle.hideturtle()
# 完成绘制
turtle.done()
# 调用函数绘制田字格
draw_grid()
运行截图:

浙公网安备 33010602011771号