求中垂线上一点到交点距离等于连线长度的1/2

解决方案 »

  1.   

    (x1,y1),(x2,y2)
    圆心((x1+x2)/2, (y1+y2)/2)
    x1相对圆心坐标((x1-x2)/2, (y1-y2)/2)
    第三个点相对圆心坐标(-(y1-y2)/2, (x1-x2/2))
    第四个点相对圆心坐标((y1-y2)/2, -(x1-x2/2))
    最后加上圆心坐标...
      

  2.   

    public Point2D getPoint(Point2D fromNode, Point2D toNode) {
    Point2D point = new Point();
    double x1 = fromNode.getX();
    double y1 = fromNode.getY();

    double x2 = toNode.getX();
    double y2 = toNode.getY();
    //得到两点中间的点,圆心坐标
    double countX = (x1 + x2) / 2;
    double countY = (y1 + y2) / 2; //计算两点间距离公式y
    double xr = Math.max(x1, x2) == x2 ? (x2 - x1)*(x2 - x1) : (x1 - x2)*(x1 - x2);
    double yr = Math.max(y1, y2) == y2 ? (y2 - y1)*(y2 - y1) : (y1 - y2)*(y1 - y2);

    double xy = xr + yr;
    //得到半径
    double r = Math.sqrt(xy) / 2;

    //得到角度
    // double c = (Math.max(y1, y2) == y2 ? y2 - y1 : y1 - y2)/2;
    // double angle =  c/r;
    // double angleA = (angle*180) / 3.1415926;

    //计算90度点的坐标
    double x = countX + r* Math.cos(45 * 3.1415926/180);
    double y = countY + r* Math.sin(45 * 3.1415926/180);
    point.setLocation(x, y);
    return point;
    }
      

  3.   

    x1y1(2,0) x2y2(0,2)算出来
    x:2.0000000133974485
    y:1.9999999866025517
    point:2.0
    point:2.0
    角度没办法得到。用sin算出来40度。我怀疑是不sin公式有问题了。。
      

  4.   

    假设两个点(x1,y1)和(x2,y2)
    中垂线方程:
    (x-x1)*(x-x1)+(y-y1)*(y-y1)=(x-x2)*(x-x2)+(y-y2)*(y-y2)
    (x-x1)*(x-x1)+(y-y1)*(y-y1)=4*交点到某点距离
      

  5.   

    知道了。谢谢zephyr_cc 好久没碰了。呵呵。忘记光了。谢谢提醒