transformPoint(p) {
    let vec = [p.x, p.y, 1],
      i,
      j,
      e = this._elements,
      m = [0, 0, 0];
    for (i = 0; i < this._elements.length; i++) {
      // row
      for (j = 0; j < this._elements[i].length; j++) {
        // column
        m[i] += vec[j] * e[i][j];
      }
    }

    return { x: m[0], y: m[1] };
  }
/**
   * Transforms the given point by this matrix and returns a new point
   */
Transforms the given point by this matrix and returns a new point
Transforms the given point by this matrix and returns a new point
transformPoint(p) {
    let vec = [p.x, p.y, 1],
      i,
      j,
      e = this._elements,
      m = [0, 0, 0];
    for (i = 0; i < this._elements.length; i++) {
      for (j = 0; j < this._elements[i].length; j++) {
        m[i] += vec[j] * e[i][j];
      }
    }
    return { x: m[0], y: m[1] };
  }
transformPoint ( p ) { let vec = [ p . x , p . y , 1 ] , i , j , e = this . _elements , m = [ 0 , 0 , 0 ] ; for ( i = 0 ; i < this . _elements . length ; i ++ ) { for ( j = 0 ; j < this . _elements [ i ] . length ; j ++ ) { m [ i ] += vec [ j ] * e [ i ] [ j ] ; } } return { x : m [ 0 ] , y : m [ 1 ] } ; }
Transforms the given point by this matrix and returns a new point
Transforms the given point by this matrix and returns a new point
// row // column