def get_matrix_rc(self, x, y, row, col, pos_x, pos_y): gate = 15 if y < pos_y and (pos_y - self.cell_width) >= 0 and abs(x - pos_x) < gate: # 上 return row * 2 - 1, 2 * col elif y > pos_y and (pos_y + self.cell_width) <= 450 and abs(x - pos_x) < gate: # 下 return row * 2 + 1, 2 * col elif x > pos_x and (pos_x + self.cell_width) <= 450 and abs(y - pos_y) < gate: # 右 return row * 2, col * 2 + 1 elif x < pos_x and (pos_x - self.cell_width) >= 0 and abs(y - pos_y) < gate: # 左 return row * 2, col * 2 - 1 else: return 1, 1
时间: 2024-04-19 12:28:10 浏览: 145
Python中if __name__ == '__main__'作用解析
这段代码根据传入的像素坐标、行列索引以及棋子位置的像素坐标,计算出对应的矩阵行列索引。
- 如果y坐标小于棋子位置的y坐标,并且(pos_y - self.cell_width)大于等于0,并且x坐标与棋子位置的x坐标之差小于gate,表示上方向有线条。返回(row * 2 - 1, 2 * col),即前一行、当前列的索引。
- 如果y坐标大于棋子位置的y坐标,并且(pos_y + self.cell_width)小于等于450,并且x坐标与棋子位置的x坐标之差小于gate,表示下方向有线条。返回(row * 2 + 1, 2 * col),即后一行、当前列的索引。
- 如果x坐标大于棋子位置的x坐标,并且(pos_x + self.cell_width)小于等于450,并且y坐标与棋子位置的y坐标之差小于gate,表示右方向有线条。返回(row * 2, col * 2 + 1),即当前行、后一列的索引。
- 如果x坐标小于棋子位置的x坐标,并且(pos_x - self.cell_width)大于等于0,并且y坐标与棋子位置的y坐标之差小于gate,表示左方向有线条。返回(row * 2, col * 2 - 1),即当前行、前一列的索引。
- 如果不满足以上条件,则返回(1, 1)作为默认值。
返回计算得到的矩阵行列索引。
阅读全文