使用oop java计算两点之间的线长



嗨,朋友们,我需要用java oop方法计算两点之间的线长度,从3个点得到3条线,然后证明它是三角形,如果它是三角形,则计算三角形面积谢谢你

对于计算线长,在二维情况下,http://en.wikipedia.org/wiki/Euclidean_distance

要从点得到线,将点i % n(i + 1) % n组成线,其中n是点的数目,i的范围从0n-1,就像一个标准的for循环。

为了证明三条线是三角形——如果你用三个点组成它们,它们显然是三角形。如果它们之间只有三个点共享,它们也是一个三角形(例如,你可以将它们添加到Set中,看看是否只有三个唯一的点存在)。

编辑:Daniel Robertus指出它们也不需要共线,即使你知道它们的点是相同的。证明三条线不共线的一种方法是用y2-y1x2-x1计算tan2(y,x),这就给出了那条线的角度——如果它们共线,那么其中两条线的角度就相同。如果它们不共线,就没有一条线有相同的角。(这个证明很简单)

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

中选择您最喜欢的公式
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));

最新更新