# -*- coding:utf-8 -*-
class Transform:
def transformImage(self,matrix,n):
"""
将N×N矩阵顺时针旋转90度 - 原地旋转
"""
n = len(matrix)
# 分层旋转:从外层到内层
for layer in range(n // 2):
first = layer
last = n - 1 - layer
for i in range(first, last):
offset = i - first
# 保存上边元素
top = matrix[first][i]
# 左边移到上边
matrix[first][i] = matrix[last - offset][first]
# 下边移到左边
matrix[last - offset][first] = matrix[last][last - offset]
# 右边移到下边
matrix[last][last - offset] = matrix[i][last]
# 上边移到右边
matrix[i][last] = top
return matrix
def main():
# 创建一个 N * N 阶矩阵 3*3
n = 3
matrix = [[i * n + 1 + j for j in range(n)] for i in range(n)]
# 创建对象实例
transform = Transform()
# 调用方法获取翻转矩阵
transform_matrix = transform.transformImage(matrix,n)
# 打印翻转后的矩阵元素
# for row in transform_matrix:
# for data in row:
# # print(f"{data}\t", end='') # print("%d\t" %data) python2传统打印
# print("%d\t" % data, end='')
# print()
for row in transform_matrix:
for data in row:
sys.stdout.write("%d\t" % data) # 写入不换行
sys.stdout.write("\n") # 换行
if __name__ == "__main__":
main()