旋转图像

http://acm.zzuli.edu.cn/problem.php?id=1733

转转转~

旋转图像

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 297  Solved: 136

SubmitStatusWeb Board

Description

Input

Output

Sample Input

2

2 3

111

000

90

3 3

111

101

111

180

Sample Output

01

01

01

111

101

111

HINT

#include<stdio.h>
#include<string.h>

#define maxn 55

int ch[maxn][maxn];

void fanzhuan(int n, int m)  //  写一个翻转90度的函数,多次利用
{
    int i, j;
    int hc[maxn][maxn] = {{0}};

for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
            hc[i][j] = ch[i][j];
    }

memset(ch, 0, sizeof(ch));

for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
            ch[j][n-1-i] = hc[i][j]; //  旋转坐标变化
    }
}

int main()
{
    int i, j, t, n, m, angle, a, b, temp;

scanf("%d", &t);

while(t--)
    {
        scanf("%d%d", &n, &m);

for(i = 0; i < n; i++)
            for(j = 0; j < m; j++)
                scanf("%d", &ch[i][j]);
        scanf("%d", &angle);

a = angle % 180; //  判断行列是否变化
        b = angle % 360;

if(b == 90)
            fanzhuan(n, m);
        if(b == 180)
        {
            fanzhuan(n, m);
            fanzhuan(m, n);
        }
        if(b == 270)
        {
            fanzhuan(n, m);
            fanzhuan(m, n);
            fanzhuan(n, m);
        }
        if(a == 90)
        {
            temp = m, n = n, n = temp;
        }

for(i = 0; i < n; i++)
        {
            for(j = 0; j < m; j++)
                printf("%d\n", ch[i][j]);
        }
    }
    return 0;
}

时间: 2024-10-11 16:37:59

旋转图像的相关文章

cvConvertImage 彩色灰度转换 垂直旋转图像

核心函数:cvConvertImage 程序: 代码: #include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> int ConvertImage(int argc,char** argv) { IplImage* src=cvLoadImage("e:\\picture\\4.jpg"); IplImage* dst=

使用GDI+的RotateFlip方法 旋转图像并保存图片

使用GDI+旋转图像并保存图片的方法,代码如下: 1 #pragma once 2 class CGDIImageFile 3 { 4 public: 5 CGDIImageFile(void); 6 ~CGDIImageFile(void); 7 8 String TypeToFormat(TCHAR cType); 9 bool GetImageCLSID(const TCHAR* mformat,CLSID *pClsid); 10 11 void CreateRotateImage(St

lintcode: 旋转图像

旋转图像 给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像. 解题 顺时针旋转90度 就是 上下翻转,再主对角对折 public class Solution { /** * @param matrix: A list of lists of integers * @return: Void */ public void rotate(int[][] A) { // write your code here if (A == null || A.length == 0 || A[0].le

用给定的角度旋转图像

1 <?php 2 /** 3 用给定的角度旋转图像 4 @param string $filename 要旋转的图片名 5 @param string $degrees 要旋转的角度 6 */ 7 function rotate($filename,$degrees){ 8 $source = imagecreatefromjpeg($filename); 9 //用函数imagerotate进行旋转 10 $rotate = imagerotate($source,$degrees,0);

解决Adobe Acrobat “正在纠偏图像,正在旋转图像,正在分解页面”问题

笔者最近遇到的一个问题:用acrobat Pro X 打开pdf显示“正在纠偏图像,正在旋转图像,正在分解页面”,此时acrobat没有响应,要等待其完成,出现就得等一会儿,总出现,总得停顿,看一篇文献很烦. 解决方法一: 编辑—首选项—朗读—屏幕阅读器选项—页面与文档 下拉菜单里选择阅读整个文档.确定即可. 备注:发现此法不能解决最开始的那次“正在……”. 解决方法二: 先关闭Adobe Acrobat Professional程序,进入到Adobe Acrobat的安装目录,一般是C:\Pr

【初级算法】11.旋转图像

题目: 给定一个 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

LeetCode(48):旋转图像

Medium! 题目描述: 给定一个 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], [1

代码题(38)— 旋转图像、矩阵置零

1.48. 旋转图像 给定一个 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,

LeetCode 48. 旋转图像(Rotate Image)

题目描述 给定一个 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,