php专区

 首页 > php专区 > PHP进阶 > 算法 > 矩阵逆时针旋转的算法

矩阵逆时针旋转的算法

分享到:
【字体:
导读:
         摘要:旋转矩阵(Rotationmatrix)是在乘以一个向量的时候有改变向量的方向但不改变大小的效果的矩阵。旋转矩阵不包括反演,它可以把右手坐标系改变成左手坐标系或反之。所有旋转加上反演形成了正交矩阵的集合。旋转可分为主动旋转与被动旋转。主动旋转是指将向量逆时针围绕旋转轴所做出的旋转。被动旋转是对坐标轴本身进行的逆时针旋转...

矩阵逆时针旋转的算法

旋转矩阵(Rotation matrix)是在乘以一个向量的时候有改变向量的方向但不改变大小的效果的矩阵。旋转矩阵不包括反演,它可以把右手坐标系改变成左手坐标系或反之。所有旋转加上反演形成了正交矩阵的集合。旋转可分为主动旋转与被动旋转。主动旋转是指将向量逆时针围绕旋转轴所做出的旋转。被动旋转是对坐标轴本身进行的逆时针旋转,它相当于主动旋转的逆操作。

下面使用齐次坐标,变换矩阵:

/*
  输入一个n*n的字符矩阵,把它逆时针旋转90度后输出:
  
  经计算n*n方阵旋转90度的变换矩阵为:
     0, 1, 0,               0,  -1,  0
    -1, 0, 0,  其逆矩阵为,    1,   0,  0
   n-1, 0, 1                0, n-1,  1
 */
#include 
#define N 4
char m[N][N]= {
    {'a', 'b', 'c', 'd'},
    {'e', 'f', 'g', 'h'},
    {'i', 'j', 'k', 'l'},
    {'m', 'n', 'o', 'p'}
};
 
int main(){
    int i, j;
    for(i=0; i
    
    

比较详细的一个程序:

/*输入N阶矩阵,逆时针旋转90°*/
#include
#include
#define N 20
int a[N][N];
main()
{
    int i,k,n,j;
    printf("Enter n<=%dn",N);
    scanf("%d",&n);//输入阶数
    if(n>N)
    {
        printf("input errorn");
        exit(0);
    }
    for(i=0;i												

本文地址:http://www.nowamagic.net/librarys/veda/detail/1044,欢迎访问原出处。

矩阵逆时针旋转的算法
分享到:
字符串逆序的各种实现算法
字符串逆序的各种实现算法 很早就准备写一个字符串系列的面试题,本来已经写好了,大概有十几道题,但是写完才发现,文章好长,连我自己都没有耐心读下去了,索性就将其拆分成几个系列,一来分开后篇幅变小,看起来比较方便。二来也更有针对性,便于精雕细作。比如这篇,在原来的文章中只占很小的篇幅,但是独立...
求和为指定数字的连续正整数数列
求和为指定数字的连续正整数数列 比如 sn = 100 时,总和为100 的连续正整数数列有 100 18 19 20 21 22 9 10 11 12 13 14 15 16 对于这种算法的设计,我们最容易想到的就是从 1 到 sn 循环遍历所有的数,对于每个数再循环计算是否以这个数为起点总和正好是sn。这种算法的时间复杂度大概是O(n*log2n), ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……