首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在c++示例代码中将矩阵向左旋转90度

在C++示例代码中将矩阵向左旋转90度可以通过以下步骤实现:

  1. 定义一个二维数组表示矩阵,例如:
代码语言:txt
复制
int matrix[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
  1. 创建一个新的二维数组用于存储旋转后的矩阵:
代码语言:txt
复制
int rotatedMatrix[3][3];
  1. 使用嵌套循环遍历原始矩阵,将每个元素按照旋转规则放入新的矩阵中:
代码语言:txt
复制
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        rotatedMatrix[j][2 - i] = matrix[i][j];
    }
}
  1. 打印旋转后的矩阵:
代码语言:txt
复制
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        cout << rotatedMatrix[i][j] << " ";
    }
    cout << endl;
}

完整示例代码如下:

代码语言:txt
复制
#include <iostream>
using namespace std;

int main() {
    int matrix[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    int rotatedMatrix[3][3];

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            rotatedMatrix[j][2 - i] = matrix[i][j];
        }
    }

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << rotatedMatrix[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

这段代码将会输出以下结果:

代码语言:txt
复制
3 6 9
2 5 8
1 4 7

这个示例代码中的矩阵向左旋转90度,可以应用于图像处理、游戏开发等领域。在腾讯云的产品中,可以使用云服务器(CVM)来运行这段代码,相关产品介绍链接地址为:腾讯云云服务器

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

剑指 Offer(C++版本)系列:剑指 Offer 13 机器人的运动范围

Offer 11 旋转数组的最小数字 剑指 Offer(C++版本)系列:剑指 Offer 12 矩阵中的路径 1、题干 机器人的运动范围 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m...一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。...示例 1: 输入:m = 2, n = 3, k = 1 输出:3 示例 2: 输入:m = 3, n = 1, k = 0 输出:1 提示: 1 <= n,m <= 100 0 <= k <=...算法流程: 递归参数:当前元素矩阵中的行索引 m 和列索引 n ,索引的数位 k ,以及计数索引 x, y 。...空间复杂度 O(MN) : 最差情况下,visited 内存储矩阵所有单元格的索引,使用 O(MN) 的额外空间。 */

39830

实验3 OpenGL几何变换

2.实验内容: (1)阅读实验原理,运行示范实验代码,掌握OpenGL程序平移、旋转、缩放变换的方法; (2)根据示范代码,尝试完成实验作业; 3.实验原理: (1)OpenGL下的几何变换 OpenGL...旋转矩阵构造函数为glRotate(theta, vx, vy, vz),作用是把当前矩阵和一个表示旋转物体的矩阵相乘。...由于矩阵乘法满足结合率,((RT)v) = R(Tv)),换句话说,实际上是先进行移动,然后进行旋转。即:实际变换的顺序与代码中写的顺序是相反的。...4.示范代码: (1)、Translate示例 #include void init (void) { glClearColor (1.0, 1.0, 1.0, 0.0); glMatrixMode...(); //将当前矩阵设为单位矩阵 glTranslatef(-2.0,-3.0,0.0); //向左移动2单位,向下移动3单位 glRotatef(-30,0.0,0.0,1.0); //逆时针旋转30

1.2K20

【OpenGL】二十一、OpenGL 矩阵压栈与出栈 ( 不同类型矩阵变换先后顺序 | 渲染前不设置单位阵 | 压栈出栈原理分析 | 代码示例 )

文章目录 一、不同类型矩阵变换先后顺序 二、渲染前不设置单位阵 三、矩阵的压栈和出栈原理分析 四、矩阵的压栈和出栈代码示例 五、相关资源 一、不同类型矩阵变换先后顺序 ---- 对 OpenGL 中的...举个例子 : 人走路时 , "先向左转 , 然后再走 100 米 " , 与 " 先走 100 米 , 再向左转 " 达到的目的地肯定是不同的 ; 先旋转后移动代码 : // 渲染场景 //...1 , 则绕该轴旋转 // 这里设置的是绕 z 轴旋转 30 度 glRotatef(30.0f, 0.0f, 0.0f, 1.0f); 效果 : 二、渲染前不设置单位阵 ---- 由上面的示例可知...和 出栈 , 这是 OpenGL 固定管线中的重要操作 ; 显卡栈 : 矩阵显卡中有一个栈 , 该显卡中的栈可以存储 n 个矩阵 ; 栈顶矩阵 : 栈顶的矩阵是 模型视图 ( ModelView...B 矩阵弹出 , 即从栈顶移出 , 恢复成 \rm A 矩阵 ; 第二次出栈 : 将 \rm A 矩阵弹出栈 , 恢复成单位阵 \rm E ; 四、矩阵的压栈和出栈代码示例 ---- 矩阵的压栈和出栈代码示例

1.9K00

数据结构与算法-1 :旋转图像

【LeetCode】题目描述 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。...请不要使用另一个矩阵旋转图像。...示例1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3...] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16] ], 原地旋转输入矩阵...,我们通过简单的几个示意图讲解了如何对一个四阶矩阵进行原地(顺时针)旋转,并通过分析矩阵中的元素位置,将元素一般替换过程推广到普适的替换过程,最终得出本题的思路,我们最后还通过Python、C++对这个题目进行了实现

71130

Go项目开发----2048小游戏(上)

我们一共会向上、向下、向左、向右四个方向移动数字,可以通过旋转矩阵将向下、向左、向右的移动都转换为向上的移动,这样能一定程度上简化游戏逻辑。大致流程图如下: 2....矩阵旋转 矩阵旋转操作是为了将其他三个方向的移动都转换为向上的移动操作。...]= martix_old[x][y] · ← → ↑ 此类转换可以将矩阵向右旋转90度后,向上移动合并,接着向左旋转90度完成向右旋转90度后:martix_new[y][n-x-1]...= martix_old[x][y] 向左旋转90度后:martix_new[n-y-1][x]= martix_old[x][y] · → → ↑ 此类转换可以将矩阵向左旋转90度后,向上移动合并...,接着向右旋转90度完成 主要代码: package main import"fmt" type g2048 [4][4]int func (t *g2048)MirrorV() { tn :=

2K40

已解决:`java.awt.geom.NoninvertibleTransformException:Java2D中无法逆转的转换`

Java2D编程中,图形变换(如旋转、缩放和翻译)是常见的操作。然而,某些情况下,这些变换可能会导致java.awt.geom.NoninvertibleTransformException异常。...本文将深入探讨此异常的背景、原因,并通过代码示例来帮助读者理解如何解决这个问题。...二、可能出错的原因 导致NoninvertibleTransformException的常见原因包括: 缩放因子为零:如果在变换中将x或y轴的缩放因子设为0,矩阵将不可逆,导致异常抛出。...三、错误代码示例 以下代码演示了一个导致NoninvertibleTransformException的错误示例: public void applyTransform(Graphics2D g2d)...四、正确代码示例 要避免NoninvertibleTransformException,我们需要确保进行几何变换时不会生成不可逆的矩阵

600

剑指offer | 面试题22:顺时针打印矩阵

offer | 面试题4:替换空格 剑指offer | 面试题5:从尾到头打印链表 剑指offer | 面试题6:重建二叉树 剑指offer | 面试题7:用两个栈实现队列 剑指offer | 面试题8:旋转数组的最小数字...顺时针打印矩阵 题目描述 :输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。...示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8...matrix = [[1,2,3],[4,5,6],[7,8,9]] 的对应输出 [1,2,3,6,9,8,7,4,5] 可以发现,顺时针打印矩阵的顺序是 “从左向右、从上向下、从右向左、从下向上”...代码: “Java 代码利用了 ++ 操作的便利性 res[x++] 等价于先给 res[x] 赋值,再给 x 自增 11 ; ++t > b 等价于先给 t 自增 11 ,再判断 t > b 逻辑表达式

22220

【每日算法Day 93】不用额外空间,你会旋转一个矩阵吗?

旋转矩阵[1] 题目描述 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到?...示例1 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3...]] 示例2 给定 matrix =[ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16]], 原地旋转输入矩阵...当然你也可以不规则的划分,如下图这样,只是代码写起来有点费劲: ? 翻转 这题还可以不通过模拟旋转来实现旋转。 上面说过了,格子 (i, j) 旋转后的新位置是 (j, n-1-i) 。...代码 旋转c++) class Solution {public: void rotate(vector>& matrix) {

49240

【Day19】LeetCode算法刷题(附带解题思路、代码注释详细) 【777. LR字符串中交换相邻字符】 【54. 螺旋矩阵

LR字符串中交换相邻字符 题目二、54. 螺旋矩阵 ---- 题目一、777. LR字符串中交换相邻字符 原题链接:777..../ 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] / 示例 2: 输入:matrix...,总结这样遍历的特点,而且很轻易就能发现,螺旋矩阵的遍历总是先向左、向下、再向上,最后又向左的,那么我们就可以从这个规律着手。...为了按照旋转矩阵的规律遍历,我们可以设置一个用于翻转数组,改变遍历方向的数组move[][]内容如下: {0,1}让矩阵向右遍历 行下标row + 0,列下标col + 1 {1,0}让矩阵向下遍历 行下标...row + 1,列下标col + 0 {0,-1}让矩阵向左遍历 行下标row + 0,列下标col + -1 {-1,0}让矩阵向上遍历 行下标row + -1,列下标col + 0 我们一边遍历,一边将扫描过的元素存入集合

45940

NDK OpenGLES3.0 开发(八):坐标系统

C/C++ 中可以利用 GLM 构建模型矩阵: glm::mat4 Model = glm::mat4(1.0f); //单位矩阵 Model = glm::scale(Model, glm::vec3...这通常是由一系列的平移和旋转的组合来平移和旋转场景从而使得特定的对象被转换到摄像机前面,这些组合在一起的转换通常存储一个观察矩阵(View Matrix)里。... C/C++ 中可以利用 GLM 构建观察矩阵: // View matrix glm::mat4 View = glm::lookAt( glm::vec3(0, 0, 3)...OpenGL 3D 变换实现 实现 OpenGL 3D 效果最简单的方式是顶点着色器中将顶点坐标与 MVP 变换矩阵相乘: #version 300 es layout(location = 0) in...v_texCoord = a_texCoord; } 绘制之前构建变换矩阵: /** * @param angleX 绕X轴旋转度数 * @param angleY 绕Y轴旋转度数 *

1.2K20

华为OD机试 旋转骰子

本期题目:旋转骰子 题目 骰子是一个正方体,每个面有一个数字,初始为左 1,右 2,前 3,后 4,上 5,下 6, 用 123456 表示这个状态,放置平面上, 可以向左翻转(用 L 表示向左翻转...表示向后翻转 1 次); 可以逆时针翻转(用 A 表示向逆时针翻转 1 次); 可以向顺时针翻转(用 C 表示向顺时针翻转 1 次); 现从 123456 这个初始状态开始,根据输入的动作序列 计算最终的状态 示例一...输出 123456 题解地址 ⭐️ 华为 OD 机考 Python https://dream.blog.csdn.net/article/details/129103070 ⭐️ 华为 OD 机考 C+...机考可选语言:C/C++、 java、 python、 js 机考平台:建议提前准备好带有摄像头的电脑(方便后期上传答案)

53030

二维数组的花式遍历技巧盘点

稍想一下,感觉操作起来非常复杂,可能要设置巧妙的算法机制来「一圈一圈」旋转矩阵: 但实际上,这道题不能走寻常路,讲巧妙解法之前,我们先看另一道谷歌曾经考过的算法题热热身: 给你一个包含若干单词和空格的字符串...我们可以先将n x n矩阵matrix按照左上到右下的对角线进行镜像对称: 然后再对矩阵的每一行进行反转: 发现结果就是matrix顺时针旋转 90 度的结果: 将上述思路翻译成代码,即可解决本题...思路是类似的,只要通过另一条对角线镜像对称矩阵,然后再反转每一行,就得到了逆时针旋转矩阵的结果: 翻译成代码如下: // 将二维矩阵原地逆时针旋转 90 度 void rotate2(int[][]...右边界左移 right_bound--; } if (upper_bound <= lower_bound) { // 底部从右向左遍历...右边界左移 right_bound--; } if (upper_bound <= lower_bound) { // 底部从右向左遍历

95320

从零开始一起学习SLAM | 三维空间刚体的旋转

Eigen是一个C++开源线性代数库,安装非常方便,Ubuntu下一行代码即可搞定: sudo apt-get install libeigen3-dev EigenSLAM编程中是必备基础,必须熟练编程...比如C++中,float类型加上double类型变量不会报错,编译器会自动将结果提升为double。...学习Eigen最好的方式就是官网: http://eigen.tuxfamily.org/dox/ 有非常多的示例参考。 上述四种旋转表达方式是可以相互转化的。...Eigen中它们之间的转化非常的方便。下图是我看的别人总结的旋转矩阵、四元素、旋转向量之间的相互转化图: ? 作业 题目1: 已知旋转矩阵定义是沿着Z轴旋转45°。..."计算机视觉life"公众号菜单栏回复:“旋转”,即可下载题目1代码框架和输出参考结果。

1.4K20

独家|OpenCV1.10 使用OpenCV实现摄像头标定

摄像头的多种应用中,了解摄像头的参数对于视觉传感器的有效使用至关重要。 本文中,将阐述摄像头标定所涉及的步骤及其涵义。 此外,文中还共享了棋盘格模式示例图像的C++和Python代码。...将世界坐标中的三维点(Xw, YW,Zw)投影到图像坐标 (u、v)的关联方程如下所示: 其中,P是一个由两部分组成的3×4投影矩阵——包含固有参数的固有矩阵(K)、由3×3旋转矩阵R和3×1平移向量...输出:3×3摄像头固有矩阵,每幅图像的旋转矩阵和平移向量。 注:OpenCV中,摄像头固有矩阵没有倾斜参数,所以该矩阵的形式为 多种类型的摄像头标定方法 有以下几种摄像头标定方法: 1....来看看calibrateCamera方法的语法 C++ Python 其中 摄像头标定源代码 摄像头标定的Python和C++代码如下。利用下面的链接,下载所有的图像和代码则更为简单。...摄像头标定的Python代码 请仔细阅读代码的注释,它们对每一步都在做什么作了详细解释。 C++代码 请通读每一条注释,以了解每一步都实现了什么。

2.1K21

Direct3D 11 Tutorial 5: 3D Transformation_Direct3D 11 教程5:3D转型

资源目录 (SDK root)\Samples\C++\Direct3D11\Tutorials\Tutorial05 Github 转型 3D图形中,变换通常用于对顶点和矢量进行操作。...需要对矩阵变换有基本的了解。 我们将简要介绍下面的一些示例。 平移 平移是指在空间中移动或移位一定距离。 3D中,用于翻译的矩阵具有形式。...这是通过调用以下代码中显示的XMMatrixRotationY函数来完成的。 立方体每帧旋转一定量。 由于立方体被假设为连续旋转,因此旋转矩阵所基于的值随每帧递增。...立方体沿Y轴旋转,应用于相关的世界矩阵。 这是通过调用以下代码中显示的XMMatrixRotationY函数来完成的。 立方体每帧旋转一定量。...示例中的以下代码创建深度缓冲区(DepthStencil纹理)。 它还创建深度缓冲区的DepthStencilView,以便Direct3D 11知道将其用作深度模板纹理。

1.8K40

​LeetCode刷题实战54:螺旋矩阵

题意 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。...样例 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: [ [1...主要的难点就是我们遍历的顺序一直变化,并且变化的速度也是变化的。虽然从某种程度上来说,这些变化都是有迹可循的,但是即便如此,把这些规律抽象出来写成简单易懂没有bug的代码也并不是一件容易的事情。...移动的过程当中自然就涉及各种各样的方向,于是我们需要用代码来表示方向。 比如我们画一个小人,它所在的坐标是(x, y),它有东南西北四个方向可以选。...比如在这题当中,我们可以发现,螺旋遍历每一次改变顺序其实都是向左转了90度。 原本朝东的旋转之后变成了朝南,朝南的变成了朝西,朝西的成了朝北,而朝北的成了朝东。

36120

游戏开发中的矩阵与变换

在上图中,我们可以看到红色的X向量由矩阵的第一列表示,绿色的Y向量同样由第二列表示。更改列将更改这些向量。接下来的几个示例中,我们将看到如何对其进行操作。 您不必担心直接操作行,因为我们通常使用列。...如果我们头部旋转这些按钮,则从逻辑上看,新的X轴应指向下方,新的Y轴应指向左侧。 您可以想象一下,您同时抓住了Godot徽标及其矢量,然后将其围绕中心旋转。...为了执行代码旋转,我们需要能够以编程方式计算值。此图显示了从旋转角度计算变换矩阵所需的公式。如果这部分看起来很复杂,请不要担心,我保证这是您需要了解的最难的事情。...翻译转换矩阵 更改原点向量称为转换变换矩阵。平移基本上是“移动”对象的技术术语,但是它显然不涉及任何旋转。 让我们通过一个示例来帮助理解这一点。...v=XkY2DOUCWMU 倒置转换矩阵 “ affine_inverse”函数返回一个“撤消”先前转换的转换。某些情况下这可能很有用,但是仅提供一些示例会更容易。

1.5K20
领券