public class Point { public Point(double valueOne, double valueTwo, boolean isPolar) { if(!isPolar) { mX = valueOne; mY = valueTwo; } else { mX = valueOne * Math.cos(valueTwo); mY = valueOne * Math.sin(valueTwo); } } public Point() { mX = 0.0; mY = 0.0; } public double getAngleDegrees() { double radians = Math.atan2(mY, mX); return(radians * 180.0 / Math.PI); } public double getAngleRadians() { double radians = Math.atan2(mY, mX); return(radians); } public double distance(double x, double y) { double xDelta = (x - mX); double yDelta = (y - mY); return(Math.sqrt(xDelta * xDelta + yDelta * yDelta)); } public double distance(Point other) { double xDelta = (other.mX - mX); double yDelta = (other.mY - mY); return(Math.sqrt(xDelta * xDelta + yDelta * yDelta)); } public String toString() { return("[ x: " + mX + ", y: " + mY + "]"); } public double getX() { return(mX); } public double getY() { return(mY); } public void setX(double value) { mX = value; } public void setY(double value) { mY = value; } private double mX; private double mY; // -------------------------------------------- // main // -------------------------------------------- public static void main(String[] args) { double radians = 45.0 * Math.PI / 180.0; Point p1 = new Point(100.0, radians, true); Point p2 = new Point(3.0, 4.0, false); Point p3 = new Point(); System.out.printf("p1: %s\n", p1.toString()); System.out.printf("p2: %s\n", p2.toString()); System.out.printf("p3: %s\n\n", p3.toString()); System.out.printf("p1, angle degrees: %.2f\n", p1.getAngleDegrees()); System.out.printf("p2, angle radians: %.2f\n\n", p2.getAngleRadians()); System.out.printf("distance, p2 -> p3: %.2f\n", p2.distance(p3)); p3.setX(12.0); p3.setY(5.0); System.out.printf("p3.x = %.2f, p3.y = %.2f\n", p3.getX(), p3.getY()); System.out.printf( "distance, p3 -> origin: %.2f\n", p3.distance(0.0, 0.0) ); } }