Rotates the matrix counter-clockwize by the specified angle.
BOOL Rotate( int nAngleDegree = 90 )
Returns TRUE on success or FALSE on failure.
EX1
void matrixbase_Rotate_ex1() { BOOL rc; matrix<double> mat1 = { {1, 2, 3, 4}, {2, 4, 6, 8}, {3, 6, 9, 12} }; MatrixPage MatPg1; MatPg1.Create("Origin"); MatrixLayer MatLy1 = MatPg1.Layers(0); Matrix Mat1(MatLy1); Mat1 = mat1; printf(" The original matrix is %s.\n",Mat1.GetName()); matrix mat2(mat1); // Create mat2, and copy mat1 to mat2 rc=mat2.Rotate(90); // Demonstrate Rotate +90 degree // Result matrix: // {4, 8, 12}, // {3, 6, 9}, // {2, 4, 6}, // {1, 2, 3} if(!rc) printf("Error: Rotate(90) on a matrix failed.\n"); else { MatrixPage MatPg2; MatPg2.Create("Origin"); MatrixLayer MatLy2 = MatPg2.Layers(0); Matrix Mat2(MatLy2); Mat2 = mat2; printf(" Observe the 90degree-rotated (counter-clockwize) matrix in %s.\n", Mat2.GetName()); } matrix mat3(mat1); // Create mat3, and copy mat1 to mat3 rc=mat3.Rotate(-90); // Demonstrate Rotate -90 degree // Result matrix: // { 3, 2, 1}, // { 6, 3, 2}, // { 9, 6, 3}, // {12, 8, 4} if(!rc) printf("Error: Rotate(-90) on a matrix failed.\n"); else { MatrixPage MatPg3; MatPg3.Create("Origin"); MatrixLayer MatLy3 = MatPg3.Layers(0); Matrix Mat3(MatLy3); Mat3 = mat3; printf(" Observe the -90degree-rotated (clockwize) matrix in %s.\n", Mat3.GetName()); } }
Rotates the matrix counter-clockwize by the specified angle. Angles must be multiples of 90 degrees but can be negative. Rotating a matrix by 90 degrees has the simultaneous effect of making the first row become the first column in reverse order, and the last column becomes the first row. By -90 degrees, the last row becomes the first column, and the first column becomes the first row in reverse order.
matrixbase::FlipHorizontal, matrixbase::FlipVertical, matrixbase::Reorder, matrixbase::Transpose
origin.h