📄 rotate.c
字号:
#include <stdio.h>#include <stdlib.h>#include "defs.h"team_t team = { /* Team name */ "Unused", /* First member full name */ "zangdonghe", /* First member email address */ "0472491", /* Second member full name (leave blank if none) */ "", /* Second member email address (blank if none) */ ""};/* The supplied naive version of rotate */char naive_rotate_descr[] = "Naive Row-wise Traversal of src";void naive_rotate(int dim, pixel *src, pixel *dst) { int i, j; for(i=0; i < dim; i++) { for(j=0; j < dim; j++) { dst[RIDX(dim-1-j,i,dim)] = src[RIDX(i,j,dim)]; } } return;}char rotate_descr[] = "Currently set to: Naive Row-wise Traversal of src";void rotate(int dim, pixel *src, pixel *dst)
{
int i, j;
pixel *tsrc,*tsrc2, *t,*hold, *hold2;
if(dim < 256)
{
t = src + dim - 1;
hold = dst;
hold2 = dst;
for (i = 0; i < dim; i+= 2)
{
tsrc = t - i;
tsrc2 = tsrc - 1;
hold2 += dim;
*hold = *tsrc;
*hold2 = *tsrc2;
hold++;
hold2++;
for(j = 1; j < dim; j++)
{
tsrc += dim;
tsrc2 += dim;
*hold = *tsrc;
*hold2 = *tsrc2;
hold++;
hold2++;
}
hold += dim;
}
}
else
{
for (i = 0; i < dim; i+=32)
{
for (j = 0; j < dim; j++)
{
dst[RIDX(dim-1-i,j,dim)] = src[RIDX(j,i,dim)];
dst[RIDX(dim-2-i,j,dim)] = src[RIDX(j,i+1,dim)];
dst[RIDX(dim-3-i,j,dim)] = src[RIDX(j,i+2,dim)];
dst[RIDX(dim-4-i,j,dim)] = src[RIDX(j,i+3,dim)];
dst[RIDX(dim-5-i,j,dim)] = src[RIDX(j,i+4,dim)];
dst[RIDX(dim-6-i,j,dim)] = src[RIDX(j,i+5,dim)];
dst[RIDX(dim-7-i,j,dim)] = src[RIDX(j,i+6,dim)];
dst[RIDX(dim-8-i,j,dim)] = src[RIDX(j,i+7,dim)];
dst[RIDX(dim-9-i,j,dim)] = src[RIDX(j,i+8,dim)];
dst[RIDX(dim-10-i,j,dim)] = src[RIDX(j,i+9,dim)];
dst[RIDX(dim-11-i,j,dim)] = src[RIDX(j,i+10,dim)];
dst[RIDX(dim-12-i,j,dim)] = src[RIDX(j,i+11,dim)];
dst[RIDX(dim-13-i,j,dim)] = src[RIDX(j,i+12,dim)];
dst[RIDX(dim-14-i,j,dim)] = src[RIDX(j,i+13,dim)];
dst[RIDX(dim-15-i,j,dim)] = src[RIDX(j,i+14,dim)];
dst[RIDX(dim-16-i,j,dim)] = src[RIDX(j,i+15,dim)];
dst[RIDX(dim-17-i,j,dim)] = src[RIDX(j,i+16,dim)];
dst[RIDX(dim-18-i,j,dim)] = src[RIDX(j,i+17,dim)];
dst[RIDX(dim-19-i,j,dim)] = src[RIDX(j,i+18,dim)];
dst[RIDX(dim-20-i,j,dim)] = src[RIDX(j,i+19,dim)];
dst[RIDX(dim-21-i,j,dim)] = src[RIDX(j,i+20,dim)];
dst[RIDX(dim-22-i,j,dim)] = src[RIDX(j,i+21,dim)];
dst[RIDX(dim-23-i,j,dim)] = src[RIDX(j,i+22,dim)];
dst[RIDX(dim-24-i,j,dim)] = src[RIDX(j,i+23,dim)];
dst[RIDX(dim-25-i,j,dim)] = src[RIDX(j,i+24,dim)];
dst[RIDX(dim-26-i,j,dim)] = src[RIDX(j,i+25,dim)];
dst[RIDX(dim-27-i,j,dim)] = src[RIDX(j,i+26,dim)];
dst[RIDX(dim-28-i,j,dim)] = src[RIDX(j,i+27,dim)];
dst[RIDX(dim-29-i,j,dim)] = src[RIDX(j,i+28,dim)];
dst[RIDX(dim-30-i,j,dim)] = src[RIDX(j,i+29,dim)];
dst[RIDX(dim-31-i,j,dim)] = src[RIDX(j,i+30,dim)];
dst[RIDX(dim-32-i,j,dim)] = src[RIDX(j,i+31,dim)];
}
}
}
}/* Register different versions for testing */void register_rotate_functions() { add_rotate_function(&rotate, rotate_descr); add_rotate_function(&naive_rotate, naive_rotate_descr);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -