(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