美文网首页算法
Python实现旋转矩阵

Python实现旋转矩阵

作者: 李白开水 | 来源:发表于2020-03-07 23:17 被阅读0次

要求:给一个n×n的数组,旋转90度。

手动画个丑图:


image.png

简单思路(顺时针):
如图四个红框为一个layer,每次旋转一个layer,layer的范围是(0,len(nums)/2)
在第一个layer循环中,要将四角的元素按一下顺序旋转(0,0)转到(0,3)转到(3,3)转到(3,0)转到(0,0)
如果直接按照这个顺序,前一个值会将后一个值直接覆盖掉,所以先用一个临时的tmp将首个元素存起来,然后按照
(3,0)转到(0,0)
(3,3)转到(3,0)
(0,3)转到(3,3)
(0,0)转到(0,3)
tmp转到(0,0)
这样的顺序旋转。

first是每个红框中的第一个元素,last为最后一个。
offset记录了当前旋转到了红框中的第几个元素。

完整代码:


def rotate(matrix):
    n = len(matrix)
    for laryer in range(0, n / 2):
        first = laryer
        last = n - 1 - laryer
        for i in range(first, last):
            offset = i - first
            tmp = 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] = tmp
    return matrix

矩阵(测试用例):

matrix = [[0,  1,  2,  3,  4],
              [5,  6,  7,  8,  9],
              [10, 11, 12, 13, 14],
              [15, 16, 17, 18, 19],
              [20, 21, 22, 23, 24]]

输出:


image.png

相关文章

  • Python实现旋转矩阵

    要求:给一个n×n的数组,旋转90度。 手动画个丑图: 简单思路(顺时针):如图四个红框为一个layer,每次旋转...

  • opencv图像旋转矩阵

    在Python opencv中图像旋转矩阵可以用来旋转源图片到目标图片、旋转源坐标点到目标坐标点。根据图像旋转矩阵...

  • OpenGL(五)-矩阵变换

    关键函数讲解 平移 旋转 缩放 案例1 : 利用矩阵的平移、旋转、综合变化等, 实现矩阵的移动. 效果图: 注: ...

  • 旋转矩阵

    题目: 题目的理解: 将矩阵顺时针转90度,题目还是很容易理解,主要是编写旋转后的坐标。 python实现 想看最...

  • 正确使用OpenCV和Python旋转图像

    使用OpenCV和Python旋转图像 其中,旋转矩阵中前两列控制旋转,最后一列控制其位置(即平移) 我们先定义了...

  • 基本变换矩阵

    1 平移变换 平移矩阵 T 平移后的新点 2 旋转矩阵 旋转矩阵用、、 分别表示 对一个绕任意轴旋转角度的旋转矩阵...

  • 矩阵旋转

    python矩阵旋转方法: 一、方法论: 方法1、先逆序,再行列交换: zip(*matrix[::-1]) 方法...

  • python 旋转矩阵(array)

    在python中将array类型的矩阵逆时针旋转90°,即:代码为: PS: numpy 中array一旦定义,其...

  • Python旋转矩阵数组

    问题: 假设有一个3*3的二维数组,如下 现在,请你用最简单的方式顺时针翻转数组90°,使之成为如下 解法: 思路...

  • WebGL 3D(三角形的矩阵变换[平移、旋转、缩放])

    三角形平移 1、公式实现 2、矩阵实现 三角形旋转 1、公式代码实现: 2、变换矩阵代码实现: 三角形缩放 1、公...

网友评论

    本文标题:Python实现旋转矩阵

    本文链接:https://www.haomeiwen.com/subject/belkdhtx.html