2013-03-13 64 views
0

嗨朋友我需要使用java oop方法计算两点之间的线长,并从3点得到3条线,然后证明它是三角形,否则如果它三角形计算三角区 谢谢使用oop java计算两点之间的线长

+2

挑选自己喜欢的公式似乎是一个家庭作业的问题。到目前为止你做了什么 ? – Joe2013 2013-03-13 04:31:20

+0

首先,您需要制作具有x和y坐标的类命名点。那么你需要做一些逻辑来计算长度并证明三点不在一条线上。所以它一定是三角形。 – 2013-03-13 04:32:51

回答

1

为了计算线路长度,http://en.wikipedia.org/wiki/Euclidean_distance两个维度

的情况下,要想从点线,使线条勾勒出点i % n(i + 1) % n其中n是点的数量,并从i范围0n-1像一个循环标准。

为了证明三条线是三角形 - 如果你从三个点做出它们,他们显然是。如果他们之间只有三个点,他们也是一个三角形(例如,你可以将它们添加到Set,看看是否只存在三个独特的点)。

编辑:丹尼尔罗伯特斯指出,他们也不需要共线,即使你知道他们的观点是共同的。证明三条线不共线的一种方法是使用y2-y1x2-x1来计算tan2(y,x),它给出了该线的角度 - 如果它们是共线的,那么两条线将具有相同的角度。如果它们不是共线的,那么没有一条线会共享一个共同的角度。 (这个证明是微不足道的。)

要计算一个三角形的面积,从http://en.wikipedia.org/wiki/Triangle#Computing_the_area_of_a_triangle

+0

我需要java编码 – 2013-03-13 04:36:37

+1

@Shanmuganathan Shanshayan请尝试编码他们,当你陷入困境尝试隔离问题,解决问题,谷歌它,如果你100%卡住,然后发布你的具体问题。 – Patashu 2013-03-13 04:37:52

+1

我想你会比给你的代码更好地服务于一般建议(教导一个人钓鱼)。 – jahroy 2013-03-13 04:40:13

0
Point2D p1 = new Point2D.Double (10.0, 15.0); 
Point2D p2 = new Point2D.Double (16.0, 7.0); 
Point2D p3 = new Point2D.Double (12.0, 11.0); 

System.out.println ("Distance from p1 to p2: " + p1.distance (p2)); 
System.out.println (
    "Area of {p1, p2, p3} triangle: " + 
    0.5 * p1.distance (p2) * new Line2D.Double (p1, p2).ptLineDist (p3)); 
+0

@jahroy我以为stackoverflow是一个网站,人们回答对方的问题,而不是互相学习。 – 2013-03-13 04:57:13