int x1,y1,x2,y2,x3,y3,x4,y4;//四个点(顺时针)
int x,y;//提示的位置public void paint(Graphics g) {
if((y2-y1)*(x3-x4)==(y3-y4)*(x2-x1)
&&(y3-y2)*(x4-x1)==(y4-y1)*(x3-x2)) {
g.drawLine(x1,y1,x2,y2);
g.drawLine(x2,y2,x3,y3);
g.drawLine(x3,y3,x4,y4);
g.drawLine(x4,y4,x1,y1);
} else {
g.drawString("不存在", x,y);
}
}
矩形属于平行四边型不需例外处理
int x,y;//提示的位置public void paint(Graphics g) {
if((y2-y1)*(x3-x4)==(y3-y4)*(x2-x1)
&&(y3-y2)*(x4-x1)==(y4-y1)*(x3-x2)) {
g.drawLine(x1,y1,x2,y2);
g.drawLine(x2,y2,x3,y3);
g.drawLine(x3,y3,x4,y4);
g.drawLine(x4,y4,x1,y1);
} else {
g.drawString("不存在", x,y);
}
}
矩形属于平行四边型不需例外处理
这个要求整数和顺时针就好像一个自己的约束一样,这样代码才会有效,否则不论如何都会有漏洞和纰漏的。 让照一定的约束才是很多大型软件必备的要求。VC、VB、JBuilder、Office....没有例外,不可能万能的。
如A(a1,a2)B(b1,b2)C(c1,c2)D(d1,d2)
任意分成两组,比如AB=CD and AC=BD and AD =BC ====>是矩形
以为你提这个问题估计是不太懂Java(其实我也不太懂),
所以给个示意。也有可能我没懂得你的意思。 ^_^其实平行和距离便不是重要的,只是一种方法和思路,你也可用其他特性写啊!
AB CD解方程如果没有解则平行,AB CD可以连线,否则有解判断是否在AB或者AB的延长线上,方法仍然是数学方法。如果在延长线AB CD可以连线,否则AB CD为对角线,连线AC BD AD BC然后再AC BD解方程同上至于如何判断在延长线还是线段上的方法用数学方法非常简单啊
取一个数字A 1-A 如果A*a1+(1-A)*b1=焦点横坐标h方程有解A>0&&A<1则在线段上
比如我要画p1,p2,p3,p4,一般肯定有个顺序的,要不我改叫p2,p1,p4,p3算了。更何况作参数,自己处理,就可定顺序,不是参数,那也得顺序啊!不知各位是否考虑得太多了。^_^