图像旋转的c语言
⑴ 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);