turtle问题
from turtle import Turtleclass Maze(Turtle):
size = 20
def __init__(self, maze_list):
Turtle.__init__(self)
self.maze_list = maze_list
self.hideturtle()
self.speed(0)
self.draw_walls()
def draw_wall(self):
self.pendown()
self.begin_fill()
self.fillcolor('#7392f6')
for i in range(4):
self.forward(self.size)
self.right(90)
self.end_fill()
self.penup()
def draw_walls(self):
for row in range(13):
for col in range(13):
if self.maze_list == 1:
self.draw_wall()
self.goto(self.size * (col + 1) - 130, 130 - self.size * row)
self.goto(-130, 130 - self.size * (row + 1))
maze_list = [
,
,
,
,
,
,
,
,
,
,
,
,
]
没看懂红字部分 求解释QWQ
这是个画墙的程序 def draw_walls(self): #创建画墙函数
for row in range(13):#对墙的某一行
for col in range(13):#对墙的某一列
if self.maze_list == 1: #如果对应矩阵值为1
self.draw_wall()#在此位置,画出墙上的砖
self.goto(self.size * (col + 1) - 130, 130 - self.size * row)#把笔移动到此行的下一列
#待此行画完后
self.goto(-130, 130 - self.size * (row + 1))#把笔移动到下一行
1q23w31 发表于 2020-8-23 14:21
额..那个下一行下一列没看懂啥意思 本帖最后由 1q23w31 于 2020-8-23 18:24 编辑
极品召唤兽 发表于 2020-8-23 18:18
额..那个下一行下一列没看懂啥意思
def draw_walls(self): #创建画墙函数
for row in range(13):#对墙的某一行
for col in range(13):#对墙的某一列
if self.maze_list == 1: #如果对应矩阵值为1
self.draw_wall()#在此位置,画出墙上的砖
self.goto(self.size * (col + 1) - 130, 130 - self.size * row)#把笔移动到此行的下一列(这行的下一块砖的位置)
#待此行画完后
self.goto(-130, 130 - self.size * (row + 1))#把笔移动到下一行
这样呢?和图配合着看
1q23w31 发表于 2020-8-23 18:21
这样呢?和图配合着看
额...意思我知道 但是他为什么是这样写的
也就是具体解释一下(self.size * (col + 1) - 130, 130 - self.size * row)
和(-130, 130 - self.size * (row + 1) 本帖最后由 1q23w31 于 2020-8-23 21:34 编辑
极品召唤兽 发表于 2020-8-23 20:38
额...意思我知道 但是他为什么是这样写的
也就是具体解释一下(self.size * (col + 1) - 130, 130 - self ...
turtle的坐标系https://upload-images.jianshu.io/upload_images/15011310-f3a2899ffa26fca6.png?imageMogr2/auto-orient/strip|imageView2/2/w/338/format/webp
static/image/hrline/line6.png
由于每一块砖是正方形,边长是20,矩阵是13行13列,
为了是图形的中心位于坐标系原点,所以区域是-130<x<130,-130<y<130
static/image/hrline/line6.png
self.goto(self.size * (col + 1) - 130, 130 - self.size * row)#把笔移动到此行的下一列
某行(col)某块砖的x坐标就是self.size * (col + 1) - 130, 某列的纵坐标就是(130 - self.size * row)
画完一行后,需要把画笔放到最左边即坐标是(-130, 130 - self.size * (row + 1))
页:
[1]