-2

如何用JAVA给出等腰三角形的第三个点,给定它的两点和外心。将有两种解决方案,如果我从A点和B点得到最短点就足够了。用外心和三角形的两点找出第三个点

+3

如果_circumcenter_你的意思是一个三角形的垂直平分线的交点,那么因为它也三角形_circumcircle_(通过三角形顶点的三个圆的圆)的中心我看不出如何找到**只有两个**解答:**该圆上的每个**点都可以是第三点! –

+0

只能得到2个解,因为三角形的第三个点将在连接两个点的中点和圆的中心的线上。这条线与圆相交两次。 – Anand

+0

所以你只考虑[_isosceles_](http://mathworld.wolfram.com/IsoscelesTriangle.html)三角形。很好,但是因为这不是[一般情况],所以应该在问题中指定它。 –

回答

1

如果AB是等腰三角形(AC = BC)的基础,那么解决方案相当简单。

给出点A, B, CC(外心)

外接球是

R = Length(CC-A) = Sqrt((CC.X - A.X)^2 + (CC.Y - A.Y)^2) 

编辑:改变了方向矢量计算以避免歧义:AB

中点

M = ((A.X + B.X)/2, (A.Y + B.Y)/2) 

方向矢量从CC到顶点C

D = (CC.X - M.X, CC.Y - M.Y) 

归一化(单元)方向矢量

uD = (D.X/Length(D), D.Y/Length(D)) 

顶点Ç坐标

C = (CC.X + R * uD.X, CC.Y + R * uD.Y) 
+0

你好,谢谢你的解决方案。然而,应该有两种解决方案C.我可以通过CC.X获得另一个坐标吗?R * uD.X,CC.Y - R * uD.Y – Anand

+0

在描述的条件下,只有一种解决方案。 – MBo