def proj_axe axe="x"
      if !axe.match(/[xy]/i)
        Error.call "Vector::proj_axe '#{axe} is not a valid axe", Error::ERR_HIGH
      end

      s = nil
      if axe.match(/x/i)
        s = Matrix.new [[1, 0, 0], [0, 0, 0], [0, 0, 1]]
      else
        s = Matrix.new [[0, 0, 0], [0, 1, 0], [0, 0, 1]]
      end

      @matrix_op = s
      cpy = self.to_matrix

      puts "projection sur un axe #{axe}." if @verbose

      return (s * cpy).to_vector
    end
def proj_axe axe="x"
      if !axe.match(/[xy]/i)
        Error.call "Vector::proj_axe '#{axe} is not a valid axe", Error::ERR_HIGH
      end

      s = nil
      if axe.match(/x/i)
        s = Matrix.new [[1, 0, 0], [0, 0, 0], [0, 0, 1]]
      else
        s = Matrix.new [[0, 0, 0], [0, 1, 0], [0, 0, 1]]
      end

      @matrix_op = s
      cpy = self.to_matrix

      puts "projection sur un axe #{axe}." if @verbose

      return (s * cpy).to_vector
    end
== Params:
 axe::
   it must be "x" or "y" (case doesn't checked)

 == Return:
 The vector after the projection