已知两点坐标。以两点连接线作中垂线。在线等。着急! 求中垂线上一点到交点距离等于连线长度的1/2 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (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))最后加上圆心坐标... 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; } x1y1(2,0) x2y2(0,2)算出来x:2.0000000133974485y:1.9999999866025517point:2.0point:2.0角度没办法得到。用sin算出来40度。我怀疑是不sin公式有问题了。。 假设两个点(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*交点到某点距离 知道了。谢谢zephyr_cc 好久没碰了。呵呵。忘记光了。谢谢提醒 最近学了JAVA,其他语言都没学过,感觉少缺少点什么,想学C语言。 请教下有没有java web 开发图表比较好的控件? 如何让组件随着界面的拉伸而改变 继承了PriorityBlockingQueue的类的其他成员在多线程编程时还需要加锁保护么? 书上的有个例子居然不能运行,晕~~~ 无效的游标状态——用Java连接数据库 就想交几个java朋友 java中我对窗口有操作,但是把操作放在一个循环中窗口就没反应了 关于目录选择问题,新手提问. java开发一个语音聊天的程序 怎么刷新前一次的绘图? 求JAVA WEB報表的一些解決方案
圆心((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))
最后加上圆心坐标...
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;
}
x:2.0000000133974485
y:1.9999999866025517
point:2.0
point:2.0
角度没办法得到。用sin算出来40度。我怀疑是不sin公式有问题了。。
中垂线方程:
(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*交点到某点距离