编程语言
首页 > 编程语言> > (java)通过函数构造直线,并对直线进行简单的比较(作业报告)

(java)通过函数构造直线,并对直线进行简单的比较(作业报告)

作者:互联网

设计并实现一个直线(Line2D)类,可以通过三个构造函数分别使用点斜式、两点式和截距式三种方法来构造直线。并对直线做简单的比较。
要求:1. 点需要使用Point2D类表示,并且重写Point2D类的equals()方法,来判断两个点是否相同。
2. 重写Line2D类的equals()方法,判断两条直线是否同一条。
3. 编写boolean isParallel(Line2D)方法,判断两条直线是否平行。
提示:1. 使用两点式构造函数时,注意两点重合则无法唯一确定一条直线。
4. 使用点斜式时,当直线平行于y轴时,斜率为无穷大,但是Java语言中double类型可以表示无穷大,Double. NEGATIVE_INFINITY和Double. POSITIVE_INFINITY,请参阅Java API文档。
5. 建议将三种构造函数统一成一种表示方法,以方便比较直线是否相等。
6. 在判断两条直线是否平行时,首先要排除两条直线重合的情况。
代码如下:

package line;
/**
 * 
 * @author 芳芳
 *
 */
public class Point2D {
	private double x,y;
    public Point2D(double param_x,double param_y){
        x=param_x;
        y=param_y;
    }
    public boolean equals(Point2D b){
        if(x==b.x&&y==b.y)
            return true;
        else
        	return false;
    }
    public double getx(){
        return x;
    }
    public double gety(){
        return y;
    }
}
public class Line2D {
	private double A,B,C;
    public Line2D(double k,double b){
        A=k;
        B=-1;
        C=b;
    }
    public Line2D(Point2D a,Point2D b){
        if(!a.equals(b))
        {
            A=1/(a.getx()-b.getx());
            B=1/(b.gety()-a.gety());
            C=b.gety()/(a.gety()-b.gety())-b.getx()/(a.getx()-b.getx());
        }
        else
        {
            System.out.print("Two points is same!\n");
            System.exit(0);
        }
    }
    public Line2D(double a,double b,int t){
        if(t==1)
        {
            A=b;
            B=a;
            C=-a*b;
        }
        else
        {
            System.out.println("Format error!");
            System.exit(0);
        }
    }
    public boolean equals(Line2D b){
        if(A==b.A&&B==b.B&&C==b.C)
            return true;
        return false;
    }
    public boolean isParallel(Line2D b){
        if(A*b.B==B*b.A&&C!=b.C)
            return true;
        return false;
    }
}
akie_384 发布了7 篇原创文章 · 获赞 1 · 访问量 216 私信 关注

标签:直线,java,double,作业,return,Line2D,public,Point2D
来源: https://blog.csdn.net/akie_384/article/details/104094244