     ###
     equal: (other) ->
       this.x == other.x && this.y == other.y
+
+    ###*
+    Computed the length of this point as though it were a vector from (0,0) to (x,y)
+    @name length
+    @methodOf Point#
+
+    @returns The length of the vector from the origin to this point.
+    @type Number
+    ###
+    length: ->
+      Math.sqrt(this.dot(this))
 
     ###*
     Calculate the magnitude of this Point (Vector).

    ###
    scale: (scalar) ->
      Point(this.x * scalar, this.y * scalar)

    ###*
    Floor the x and y values, returning a new point.

    @returns A new point, this - other.
    @type Point
    ###
    subtract: (first, second) ->
      this.copy().subtract$(first, second)

    subtract$: (first, second) ->
      if second?
        this.x -= first
        this.y -= second
      else
        this.x -= first.x
        this.y -= first.y

      this

    ###*
    Scale this Point (Vector) by a constant amount.
