rot90
Rotates a matrix by 90 degrees.
Installation
$ npm install compute-rot90
For use in the browser, use browserify.
Usage
var rot90 = ;
rot90( x[, opts] )
Rotates a matrix
by 90
degrees in the counterclockwise direction.
var matrix = ;var data = 6 ;for var i = 0; i < datalength; i++data i = i;var mat = ;/*[ 0 12 34 5 ]*/var out = ;/*[ 1 3 50 2 4 ]*/
The function accepts the following options
:
- k: number of times to rotate a
matrix
by90
degrees. Default:1
. - copy:
boolean
indicating whether to return a newmatrix
. Default:true
.
To rotate a matrix
multiple times, set the k
option.
// Rotate the matrix 3 times...var out =;/*[ 4 2 05 3 1 ]*/
k
may also be negative and thus specify that the matrix
be rotated in a clockwise direction.
var out =;/*[ 5 43 21 0 ]*/
By default, the function returns a new matrix instance. To mutate the input matrix, set the copy
option to false
.
var out =;/*[ 1 3 50 2 4 ]*/var bool = mat === out ;// returns true
Examples
var matrix =rot90 = ;var nRows = 3nCols = 2matouti j;mat = ;for i = 0; i < nRows; i++for j = 0; j < nCols; j++mat;/*[ 0 12 34 5 ]*/// Rotate the matrix 90 degrees...out = ;/*[ 1 3 50 2 4 ]*/// Rotate the matrix 180 degrees...out =;/*[ 5 43 21 0 ]*/// Rotate the matrix 270 degrees...out =;/*[ 4 2 05 3 1 ]*/// Rotate the matrix 360 degrees...out =;/*[ 0 12 34 5 ]*/// Rotate the matrix -90 (equiv to +270) degrees...out =;/*[ 4 2 05 3 1 ]*/// Rotate the matrix -180 (equiv to +180) degrees and mutate...out =;/*[ 5 43 21 0 ]*/
To run the example code from the top-level application directory,
$ node ./examples/index.js
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2015. The Compute.io Authors.