c語言怎麼旋轉一個矩陣

#include<stdio.h>

int main()

{int i,j,t,n,a[20][20];

scanf("%d",&n);

for(i=0;i<n;i++)

{for(j=0;j<n;j++)

{a[i][j]=i*n+j+1;

printf("%3d",a[i][j]);

}

printf(" ");

}

printf(" ");

for(i=0;i<=n/2;i++)

for(j=i;j<n-i-1;j++)

{t=a[i][j];

a[i][j]=a[j][n-1-i];

a[j][n-1-i]=a[n-1-i][n-1-j];

a[n-1-i][n-1-j]=a[n-1-j][i];

a[n-1-j][i]=t;

}

for(i=0;i<n;i++)

{for(j=0;j<n;j++)

printf("%3d",a[i][j]);

printf(" ");

}

return 0;

}

⑵ 求一段C語言圖形旋轉就是整體坐標的轉換的代碼

原來的三點
line(25,50,50,50);
line(50,50,50,25);
line(50,25,25,50);
是個三角形
我想旋轉一點的角度,該如何改寫
如輸入angle:30

⑶ C語言 圖形翻轉``

#include<stdio.h>
main()
{
int a[100][100],i,j,n,m,t,s,k;
scanf("%d %d %d",&m,&n,&t);//M為行來源 N為列 T為翻轉的方式
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
if(t==1)
{
for(s=0;s<i/2;s++)
for(j=0;j<n;j++)
{
k=a[i-s-1][j];
a[i-s-1][j]=a[s][j];
a[s][j]=k;
}
}
if(t==-1)
{for(s=0;s<j/2;s++)
for(i=0;i<m;i++)
{
k=a[i][j-s-1];
a[i][j-s-1]=a[i][s];
a[i][s]=k;
}
}
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
printf(" %d",a[i][j]);
printf("\n");
}
}

⑷ c #如何實現圖片旋轉

Timer timer1;//定時旋轉和移動 Graphics g;//背景圖的畫圖對象 float x = 0;//水平移動的初始位置 private void pictureBox1_Click(object sender, EventArgs e){bmp=new Bitmap(@"..\..\1.bmp"); background = new Bitmap(pictureBox1.Width, pictureBox1.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);//畫在PictureBox上 g = Graphics.FromImage(background); g.TranslateTransform(background.Width / 2, background.Height / 2);//移動一下中心點,畫在背景的中央,好看些 timer1 = new Timer(); timer1.Interval = 100; timer1.Tick += new EventHandler(timer1_Tick); timer1.Enabled = true;}void timer1_Tick(object sender, EventArgs e){ g.Clear(Color.Black); g.RotateTransform(10.0F);//每次旋轉10度,實際上是畫圖坐標旋轉 g.DrawImage(bmp, -bmp.Width/2, -bmp.Height/2);//源圖中心點和畫圖對象中心重合,自旋轉效果,否則會以左上角為中心旋轉 Graphics gb=pictureBox1.CreateGraphics(); x += 3.0f;//水平移動效果,步長3像素

⑸ 怎樣用C語言實現旋轉

怎樣用C語言實現旋轉
#include <stdio.h>

void main()
{
int M;
int N;
int flag=0;
int num1=0;
int num2=1;
int i=0;
int j=0;
char str='A';
char Array[31][31];
printf("請輸入矩陣的行M和矩陣的列N:");
scanf("%d%d",&M,&N);
Array[0][0]=str;
while(flag < M*N-1)
{
switch(num2%4)
{
case 1:
++j;
if(j == N-num1-1)
{
num2++;
}
break;
case 2:
++i;
if(i == M-num1-1)
{
num2++;
}
break;
case 3:
--j;
if(j == num1)
{
num2++;
}
break;
case 0:
--i;
if(i == num1+1)
{
num2++;
num1++;
}
break;
}

if(++str == 'Z'+1)
str='A';

Array[i][j]=str;
flag++;

}

for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%c ",Array[i][j]);
}
printf("\n");

}

}

⑹ c語言 讀取一副BMP格式的圖像文件,並將並將其旋轉180度後輸出一個新的BMP格式的圖

先去看看bmp圖片的格式,一般就是文件頭信息和文件數據信息。
你需要做的是先從bmp圖片中解析出頭信息,找到是什麼格式的888,565,555這種,然後還需要找到寬高,旋轉180°就是將數據左右對稱,上下對稱。
最後把頭信息和你改過的數據信息組合起來就可以了

⑺ 求c語言高手賜一個關於圖像旋轉的程序,謝謝!!

原型:
int WINAPI icePub_imgCircumgyrate(char *strImgFilename,char *strBmpFilename,int radian)
輸入:strImgFilename 待處理圖像文件名
strBmpFilename 結果bmp文件名
radian 旋轉角度
輸出:

typedef int (WINAPI ICEPUB_IMGCIRCUMGYRATE)(char *strImgFilename,char *strBmpFilename,int radian);
ICEPUB_IMGCIRCUMGYRATE *icePub_imgCircumgyrate = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_imgCircumgyrate=(ICEPUB_IMGCIRCUMGYRATE *)GetProcAddress(hDLLDrv,"icePub_imgCircumgyrate");
}
if(icePub_imgCircumgyrate)
{
icePub_imgCircumgyrate("a.jpg","a1.bmp",45);
icePub_imgCircumgyrate("d.png", "d1.bmp",120);
}
if(hDLLDrv)
FreeLibrary(hDLLDrv);