你可以这样做。比如有一个图形为三角形,在七巧板的中,它可能有8种状态,然后分别画出8种状态的图形,当你激活它的旋转程序后,就换一张另一个状态的图形。
10年积累的成都做网站、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有广东免费网站建设让你可以放心的选择与我们合作。
或者写一个函数,参数为各个顶点的座标,旋转的时候通过计算,找到新状态的各个顶点的座标,这样也可以。
原型:
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);
旋转 只能 是90°的整数倍.
而且要新申请一块区域来保存.
建议你学一下openCV.
先去看看bmp图片的格式,一般就是文件头信息和文件数据信息。
你需要做的是先从bmp图片中解析出头信息,找到是什么格式的888,565,555这种,然后还需要找到宽高,旋转180°就是将数据左右对称,上下对称。
最后把头信息和你改过的数据信息组合起来就可以了
#includestdio.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;im;i++)
{ for(j=0;jn;j++)
scanf("%d",a[i][j]);
}
if(t==1)
{
for(s=0;si/2;s++)
for(j=0;jn;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;sj/2;s++)
for(i=0;im;i++)
{
k=a[i][j-s-1];
a[i][j-s-1]=a[i][s];
a[i][s]=k;
}
}
for(i=0;im;i++)
{ for(j=0;jn;j++)
printf(" %d",a[i][j]);
printf("\n");
}
}