旋转矩阵算法
发布时间: 2024-12-27 07:24:24
#include <stdlib.h>
#include <stdio.h>
#define N 5
int min(int a,int b,int c,int d)
{
a=a<b?a:b;
a=a<c?a:c;
a=a<d?a:d;
return a;
}
int main()
{
int arr[N][N],i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
arr[i][j]=min(i,j,N-1-i,N-1-j);
printf("%d ",arr[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
⑵ 计算机图形学旋转算法
绕任意点旋转的思路是,先将任意旋转点一起平移到原点,图像随旋转点一起平移,然后根据旋转矩阵将图像旋转,然后再将旋转点与图像一起平移回原先的位置.
旋转矩阵:将所需旋转角转换为弧度后算出COS和SIN函数结果并填入矩阵,将旋转点与组成图像的所有顶点坐标与矩阵相乘获得变换后的新坐标.
任意点旋转的复合矩阵
矩阵相乘的顺序很重要,因为矩阵相乘先后结果是不对等的,而矩阵表达上是从右到左的,比如T*R*-T,计算过程相当于T*(R*-T),另外矩阵相乘是采用交叉点乘,而M矩阵也是个3*3的矩阵
得到M复合矩阵后,再将原点与图像顶点与M相乘,即可得到变换后的新坐标.即P'=M*P
图像变换算法其实特简单,就是cos和sin,然后就是四则运算,再填入矩阵,计算复合矩阵,按现在的教学大纲小学生都会,计算机写程序一点没难度,重点其实在图像变换的理解上.
热点内容