DEV Community

Edwin Torres
Edwin Torres

Posted on

A Simple 2D Point Class in Java

Creating a simple 2D point class in Java is fairly simple. A Cartesian coordinate system uses points in two dimensions along an x-axis and y-axis. Each point has a pair of x and y coordinates along these two axes.

We define a SimplePoint class that has two private properties x and y:

public class SimplePoint {

  private double x,y;

}
Enter fullscreen mode Exit fullscreen mode

To access each property, create two getter methods in the class:

  public double getX() { return x; };

  public double getY() { return y; };
Enter fullscreen mode Exit fullscreen mode

We could also provide setter methods if desired.

A constructor method makes it convenient to create a SimplePoint object at a specific x,y location:

  public SimplePoint(double x1, double y1) {
    x = x1;
    y = y1;
  }
Enter fullscreen mode Exit fullscreen mode

For example, to create two SimplePoint objects at x,y positions 2,1 and 8,2:

    SimplePoint p1 = new SimplePoint(2,1);
    SimplePoint p2 = new SimplePoint(8,2);
Enter fullscreen mode Exit fullscreen mode

Finally, here is a distance() function to calculate the distance between two SimplePoint objects:

  public double distance(SimplePoint p) {
    return Math.sqrt( Math.pow(p.getX()-x,2) + Math.pow(p.getY()-y,2) );
  }
Enter fullscreen mode Exit fullscreen mode

To calculate and output the distance between p1 and p1:

    System.out.println( p1.distance(p2) ); // 6.082762530298219
Enter fullscreen mode Exit fullscreen mode

Here is the complete source code for the SimplePoint class, including the sample main() method:

public class SimplePoint {

  private double x,y;

  public SimplePoint(double x1, double y1) {
    x = x1;
    y = y1;
  }

  public double getX() { return x; };

  public double getY() { return y; };

  public double distance(SimplePoint p) {
    return Math.sqrt( Math.pow(p.getX()-x,2) + Math.pow(p.getY()-y,2) );
  }

  public static void main(String[] args) {
    SimplePoint p1 = new SimplePoint(2,1);
    SimplePoint p2 = new SimplePoint(8,2);

    System.out.println( p1.distance(p2) ); // 6.082762530298219
  }

}
Enter fullscreen mode Exit fullscreen mode

Java makes it easy to represent 2D points. The SimplePoint class is one way to do that. Create SimplePoint objects at specified locations, then use the distance() function to calculate the distances between them.

Thanks for reading.

Follow me on Twitter @realEdwinTorres for more programming tips. 😀

Top comments (1)

Collapse
 
aymhenry profile image
Ayman Henry

Good example
You may also, add fountion to retive, p1 in polar. It will return r, cita

Great read:

Is it Time to go Back to the Monolith?

History repeats itself. Everything old is new again and I’ve been around long enough to see ideas discarded, rediscovered and return triumphantly to overtake the fad. In recent years SQL has made a tremendous comeback from the dead. We love relational databases all over again. I think the Monolith will have its space odyssey moment again. Microservices and serverless are trends pushed by the cloud vendors, designed to sell us more cloud computing resources.

Microservices make very little sense financially for most use cases. Yes, they can ramp down. But when they scale up, they pay the costs in dividends. The increased observability costs alone line the pockets of the “big cloud” vendors.