applyMatrix = (point, matrix, tag) => {
  const vector = [point.x, point.y, tag];
  if (!matrix || matrix[0] === NaN) {
    matrix = mat3.create();
  }

  vec3.transformMat3(vector, vector, matrix);

  return {
    x: vector[0],
    y: vector[1],
  };
}
coordinate matrix transformation
@param  {number} point   coordinate
@param  {Matrix} matrix  matrix
@param  {number} tag     could be 0 or 1
@return {Point} transformed point