Another rotate Method
To rotate a point about the origin: public DrawablePoint rotate( double theta ) { final double cos_t = Math.cos( theta ); final double sin_t = Math.sin( theta ); double x_double, y_double; x_double = this.x*cos_t - this.y*sin_t; y_double = this.x*sin_t + this.y*cos_t; int new_x = ( int ) Math.round( x_double ); int new_y = ( int ) Math.round( y_double ); this.move( new_x, new_y ); return this; }