编写函数,将一个矩阵原地逆时针旋转90度
时间: 2024-05-13 17:13:41 浏览: 144
好的,这是一个技术问题,可以直接回答。下面是实现该函数的代码:
```
void rotateMatrix(int **matrix, int n) {
for (int i = 0; i < n / 2; i++) {
for (int j = 0; j < (n + 1) / 2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[n - j - 1][i];
matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1];
matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1];
matrix[j][n - i - 1] = temp;
}
}
}
```
笑话时间:为什么猪不会上天呢?因为它们的翅膀不够大啊!
相关问题
matlab逆时针旋转90度
可以使用 Matlab 中的 `rot90` 函数来实现逆时针旋转 90 度。具体用法如下:
```matlab
rotated_matrix = rot90(original_matrix, 1);
```
其中,`original_matrix` 是需要旋转的矩阵,`rotated_matrix` 是旋转后得到的矩阵。第二个参数 `1` 表示逆时针旋转 90 度,如果需要顺时针旋转 90 度,则可以将第二个参数改为 `-1`。
canvas逆时针旋转90度
要在HTML5 Canvas上逆时针旋转图形90度,你需要使用`transform`方法结合`rotate()`函数。首先,你需要保存当前的变换矩阵,因为旋转会改变其状态。然后应用旋转,最后恢复到原始状态以便继续绘画其他元素。以下是步骤示例:
```javascript
// 假设有以下变量
let canvas = document.getElementById('myCanvas');
let ctx = canvas.getContext('2d');
// 保存当前变换矩阵
ctx.save();
// 设置旋转角度为 -90 度(逆时针)
ctx.translate(canvas.width, 0); // 移动到右下角,防止旋转后的图形超出原边界
ctx.rotate(Math.PI / 2); // 逆时针旋转90度
// 在这里绘制需要旋转的形状,比如圆形、矩形等
let centerX = canvas.width / 2;
let centerY = canvas.height / 2;
let radius = 50;
ctx.beginPath();
ctx.arc(centerX, centerY, radius, 0, Math.PI * 2);
ctx.closePath();
ctx.stroke(); // 或 ctx.fill() 根据需要填充颜色
// 恢复到原始变换矩阵
ctx.restore();
```
在上述代码中,`translate()`函数是为了修正由于旋转中心点的变化,而产生的图像偏移。`restore()`函数则恢复了旋转前的状态,让你可以在之后继续正常地绘制。
阅读全文