Point2D.java
- package org.drip.zen.geometry;
- /*
- * 1) Motivation behind Class - Structure and Function
- * 2) x/y fields and printing them
- * 3) Invocation of the Class - Creation of the Class Instance
- * 4) Adding a method - set to Origin
- * 5) Add the Constructor with fields
- * 6) Member Fields with an underscore
- * 7) Distance from Origin
- * 8) Angle with X axis at Origin
- * 9) Degrees to Radians Conversion
- * 10) Quadrant
- * 11) Degrees to Radian with the Qudrant Assignment
- * 12) Distance From Another Point
- * 13) Translate the Points - 20 March 2016 #2
- * 14) Polar Coordinate Representation - 20 March 2016 #3
- * 15) Sketch the Problem Solution - 20 March 2016 #4
- * 16) Point from Polar Coordinates - 20 March 2016 #5
- * 17) Introducing the static Constructor - 20 March 2016 #6
- */
- public class Point2D {
- private double _x = -1.;
- private double _y = -1.;
- /*
- * Added 20 March 2016
- */
- public static Point2D MakeFromPolar (double r, double angle)
- {
- double x = r * Math.cos (angle);
- double y = r * Math.sin (angle);
- Point2D p = new Point2D (x, y);
- return p;
- }
- /*
- * Done Adding 20 March 2016
- */
- Point2D (double x, double y)
- {
- _x = x;
- _y = y;
- }
- public double getX()
- {
- return _x;
- }
- public double getY()
- {
- return _y;
- }
- void printCoordinate()
- {
- System.out.println ("\t[" + _x + ", " + _y + "]");
- }
- void resetToOrigin()
- {
- _x = 0.;
- _y = 0.;
- }
- double distanceFromOrigin()
- {
- double distance = Math.sqrt (_x * _x + _y * _y);
- return distance;
- }
- double distanceBetweenPoints (Point2D anotherPoint)
- {
- double x1 = _x;
- double y1 = _y;
- double x2 = anotherPoint._x;
- double y2 = anotherPoint._y;
- double distance = Math.sqrt ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
- return distance;
- }
- public double angleAtOrigin()
- {
- double adjustedAngleAtOrigin = 0.;
- double angleAtOriginTan = _y / _x;
- double unadjustedAngleAtOrigin = Math.atan (angleAtOriginTan);
- if (_x > 0 && _y > 0)
- adjustedAngleAtOrigin = unadjustedAngleAtOrigin;
- else if (_x < 0 && _y > 0)
- adjustedAngleAtOrigin = unadjustedAngleAtOrigin + Math.PI;
- else if (_x < 0 && _y < 0)
- adjustedAngleAtOrigin = unadjustedAngleAtOrigin + Math.PI;
- else if (_x > 0 && _y < 0)
- adjustedAngleAtOrigin = unadjustedAngleAtOrigin + 2. * Math.PI;
- else if (_x > 0 && _y < 0)
- adjustedAngleAtOrigin = 0.;
- return adjustedAngleAtOrigin * 180. / Math.PI;
- }
- String quadrant()
- {
- String region;
- if (_x > 0 && _y > 0)
- region = "UPPER RIGHT";
- else if (_x < 0 && _y > 0)
- region = "UPPER LEFT";
- else if (_x < 0 && _y < 0)
- region = "LOWER LEFT";
- else if (_x > 0 && _y < 0)
- region = "LOWER RIGHT";
- else
- region = "ORIGIN";
- return region;
- }
- /*
- * Added 20 March 2016
- */
- public boolean translate (double xShift, double yShift)
- {
- _x = _x + xShift;
- _y = _y + yShift;
- return true;
- }
- void printPolarCoordinate()
- {
- System.out.println ("\t[" + distanceFromOrigin() + ", " + angleAtOrigin() + "]");
- }
- /*
- * Done Adding On 20 March 2016
- */
- public static void main (String[] args)
- {
- Point2D myPoint = new Point2D (2., 3.);
- myPoint.printCoordinate();
- myPoint._x = 1;
- myPoint._y = 1;
- myPoint.printCoordinate();
- myPoint.resetToOrigin();
- myPoint.printCoordinate();
- System.out.println ("\tDistance From Origin: " + myPoint.distanceFromOrigin());
- Point2D secondPoint = new Point2D (3., 4.);
- System.out.println ("\tDistance Between Points: " + myPoint.distanceBetweenPoints (secondPoint));
- myPoint._x = 2;
- myPoint._y = -2;
- System.out.println ("\tAngle at Origin: " + myPoint.angleAtOrigin());
- System.out.println ("\tQuadrant: " + myPoint.quadrant());
- }
- }