Source code for Point.java

What follows is the highlighted source code with comments. You can also download this file directly: Point.java.

/*
 * This work by W. Patrick Hooper is free of known copyright restrictions.
 * The work is in the public domain.
 * 
 * Author's website: <a href="http://wphooper.com">http://wphooper.com</a>. 
 */


package projectiveplane;

/**
 * This class represents a point in the real projective plane.
 * 
 * @author W. Patrick Hooper <wphooper@gmail.com>
 * @version 1
 */
public class Point {
    /** The following array stores the homogeneous coordinates for the point. */
    double[] c=new double[3];

    public Point(){
	c[0]=c[1]=0;
	c[2]=1;
    }

    public Point(double x, double y){
	c[0]=x;
	c[1]=y;
	c[2]=1;
    }

    // Given in Projective coordinates
    public Point(double x, double y, double z){
	c[0]=x;
	c[1]=y;
	c[2]=z;
    }

    // Given in Projective coordinates given by an array
    public Point(double[] x){
	c[0]=x[0];
	c[1]=x[1];
	c[2]=x[2];
    }

    public Point(Point P){
	double d[]=P.getProjectiveCoordinates();
	c[0]=d[0];
	c[1]=d[1];
	c[2]=d[2];
    }

    public double distanceSquared(Point P){
	return 
	    ((getX()-P.getX())*(getX()-P.getX())+
	     (getY()-P.getY())*(getY()-P.getY()));
    }

    public boolean isNotInfinite(){
	return (c[2]!=0);
    }

    
    public boolean isInfinite(){
	return (c[2]==0);
    }
	    
    public double getX(){
	return (c[0]/c[2]);
    }

    public double getY(){
	return (c[1]/c[2]);
    }

    public double[] getProjectiveCoordinates(){
	return c;
    }

    public String toString(){
	return "("+
	    Double.toString(c[0])+":"+
	    Double.toString(c[1])+":"+
	    Double.toString(c[2])+")";
    }

}

HOOPER >>>>> JAVA TUTORIAL
Last modified on August 25, 2021.
[check html] [check css]