求解一道JAVA的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:24:04
实现一个类,描述二维平面的直线Line。
描述属性:私有属性
 直线所通过的点:Point p;
 直线的斜率:double m
实现方法:
 直线的构建;
 返回直线的两个属性;
 返回直线在Y轴上的截距:yIntercept ;
 判断两条直线是否相等;
 显示直线的内容:y = mx + b;
 isParallelTo(Line line2),判断本直线与直线line2是否平行;
 isPeroendicularTo(Line line2),判断本直线与直线line2是否垂直;
 translate(double dx, double dy),将直线向右移动dx单位,向上移动dy单位;
 rarate(double ta),将直线沿逆时针方向旋转ta度;
旋转直线的斜率关系:
tan(a) +tan(ta)
tan(a + ta) = ---------------------
1 - tan(a)*tan(ta)
contains(Point p),判断点p是否在直线上

public class Line {
  /**
  * 直线所经过的点
  */
  private Point p;
  /**
  * 直线的斜率
  */
  private double m;
  /**
  * @param args
  */
  public static void main(String[] args) {
  // TODO Auto-generated method stub
  Line l1=new Line(new Point(2,6),0.2);

  System.out.println(l1);
  }
  /**
  * 返回直线的斜率
  * @return
  */
  public double getM() {
  return m;
  }
  /**
  * 返回直线经过的点
  * @return
  */
  public Point getP() {
  return p;
  }
  /**
  * 直线的构建
  * @param p 直线经过的点
  * @param m 直线的斜率
  */
  public Line(Point p, double m) {
  super();
  this.p = p;
  this.m = m;
  }
  /**
  * 判断直线是否平行。
  * @param line2
  * @return
  */
  public boolean isParallelTo(Line line2){
  return m==line2.m;
  }
  /**
  * 判断直线是否垂直
  * @param line2
  *