当前位置:  技术问答>java相关

急!!!请帮帮忙

    来源: 互联网  发布时间:2017-04-09

    本文导语:  请问 怎样完成下列程序: 输入4个点坐标,判断是否是平行四边型,如果是画出图形,是矩形,画出矩形 如果不是,输出“不存在”。 | int x1,y1,x2,y2,x3,y3,x4,y4;//四个点(顺时针) int x,y;//提示的位置 p...

请问 怎样完成下列程序:
输入4个点坐标,判断是否是平行四边型,如果是画出图形,是矩形,画出矩形
如果不是,输出“不存在”。

|
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); 
}
}
矩形属于平行四边型不需例外处理

|
我觉奇怪,不知你们讨论什么吗

比如你用四个点画线,难道没顺序吗?  所以顺序肯定有的。何必如此大费干戈呢,岂不浪费。
比如我要画p1,p2,p3,p4,一般肯定有个顺序的,要不我改叫p2,p1,p4,p3算了。

更何况作参数,自己处理,就可定顺序,不是参数,那也得顺序啊!

不知各位是否考虑得太多了。^_^

|
对了,看来是我误导了大家(我估计)。

我的代码意思是两边分别平行的四边形就是平行四边形。 我的点让一定顺序排所以才能分别是对应边的关系。

算距离也一样,同样要有约束。你用AB=BC去判断平行,显然也不通的。

还有其他的平行四边形条件你也一样的可用。  我本没打算写。
以为你提这个问题估计是不太懂Java(其实我也不太懂),
所以给个示意。

也有可能我没懂得你的意思。  ^_^

其实平行和距离便不是重要的,只是一种方法和思路,你也可用其他特性写啊!

|
我要求必是整数,必须顺时针。(最好x1,y1是左上点,这样如果要填充矩形的话容易)  不是你转换好了。况且绘图也是以象素为单位的。


这个要求整数和顺时针就好像一个自己的约束一样,这样代码才会有效,否则不论如何都会有漏洞和纰漏的。  让照一定的约束才是很多大型软件必备的要求。VC、VB、JBuilder、Office....没有例外,不可能万能的。

|
对楼主啊,不是时,你自己转换一下,很容易的。  每个部分都会是有限的功能,有限组合才能接近无限的。   

不好意思说多了废话。  自己转换很容易的。

|
首先计算出每两点之间的距离
如A(a1,a2)B(b1,b2)C(c1,c2)D(d1,d2)
任意分成两组,比如AB=CD and AC=BD and AD =BC ====>是矩形

|
楼上的问题提的好,我也向导了这一点,可以这样处理,最原始的方法,用二元一次方程组,建立两条直线方程
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

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3