方陣 = square
陣列的階數= size  (EX:3X3矩陣 矩陣SIZE=3)

垂直翻轉
EX:

Before:
1   2   3
4   5   6
7   8   9

After:
3   2   1
6   5   4
9   8   7

//垂直翻轉
void VerticalFlip(int *square,int size)
{
    for(int i=0;i<(size/2);i++)
    {
        for(int j=0;j<size;j++)
        {
            swap(square[(size*j)+i],square[(size*(j+1))-i-1]);
        }
    }
}

水平翻轉
EX:

Before:
1   2   3
4   5   6
7   8   9

After:
7   8   9
4   5   6
1   2   3

//水平翻轉
void HorizontalFlip(int *square,int size)
{
    for(int i=0;i<(size/2);i++)
    {
        for(int j=0;j<size;j++)
        {
            swap(square[(size*i)+j],square[(size*(size-1-i))+j]);
        }
    }
}


左斜翻轉

EX:

Before:
1   2   3
4   5   6
7   8   9

After:
1   4   7
2   5   8
3   6   9

//左對角線翻轉
void LeftDiagonalFlip(int *square,int size)
{
    for(int i=(size-1);i>0;i--)
    {
        for(int j=1;j<=i;j++)
        {
            swap(square[size*(size-1-i)+(size-i+j-1)],square[(size-(i-j+1))*size+(size-i-1)]);
            //std::cout<<"Hello"<<std::endl;
        }
    }
}


右斜翻轉

EX:

Before:
1   2   3
4   5   6
7   8   9

After:
9   6   3
8   5   2
7   4   1

//右對角線翻轉
void RightDiagonalFlip(int *square,int size)
{
    for(int i=(size-1);i>0;i--)
    {
        for(int j=1;j<=i;j++)
        {
            swap(square[size*(size-i-1)+(j-1)],square[(size*size)-(size*(j-1))-(size-i)]);
        }
    }
}
arrow
arrow
    全站熱搜

    Aminzai 發表在 痞客邦 留言(0) 人氣()