package edu.colorado.phet.movingman.ladybug class Vector2D(_x: Double, _y: Double) { val x = _x val y = _y override def toString = "x=" + x + ", y=" + y def this() = this (0, 0) /** * Returns a unit vector in the specified direction */ def this(angle: Double) = this (Math.cos(angle), Math.sin(angle)) def +(that: Vector2D) = new Vector2D(that.x + x, that.y + y) def -(that: Vector2D) = new Vector2D(x - that.x, y - that.y) def *(scale: Double) = new Vector2D(x * scale, y * scale) def /(scale: Double) = new Vector2D(x / scale, y / scale) def getAngle = java.lang.Math.atan2(y, x) def magnitude = java.lang.Math.sqrt(x * x + y * y); } object TestVector2D { def main(args: Array[String]) = { val a = new Vector2D(3, 2) val b = new Vector2D(5, 5) println(a) println(a - b) } }