数学问题,知道直角三角形2点坐标,3边长度,求第三点坐标

C语言 码拜 5年前 (2016-06-09) 648次浏览
A,B,C三点一个三角形
A是直角顶点;AB,AC两边与X,Y轴不平行;
知道AB,AC,BC的长度,知道A,B的坐标,求C得坐标;
谁知道呀,感觉是中学数学,但是本人忘光了;只找到一个”根据两点坐标得到长度”的公式写出2个2元2次方程,
(Xc – Xa) * (Xc – Xa) + (Yc – Ya) * (Yc – Ya) = AC * AC
(Xc – Xb) * (Xc – Xb) + (Yc – Yb) * (Yc – Yb) = BC * BC
但是解出来验证不对;
谁有更好的办法,不要说数学原理,看不懂;谁帮忙写个算法
解决方案

10

参考《高中数学》三角函数

10

公式是对的,肯定是你实现的问题,精度损失什么的

10

这样算的话,原因是计算机计算过程中会出现 截断的过程,全部 计算机算的值与精确值 之间是存在一定的误差的,全部 像是用数学问题来编程时,一般都要给两者一定的误差值!

10

可以先求直角三角形旋转到与XY轴平行的角度和新的C点坐标,然后再把坐标旋转回去。
大致是这样的(没有验证,错了不要怪本人):
angle = arcsin((Xa – Xb) / AB)
Xc” = Xa + AC
Yc” = Ya
Xc = cos(angle) * Xc” – sin(angle) * Yc”;
Yc = cos(angle) * Yc” + sin(angle) * Xc”;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明数学问题,知道直角三角形2点坐标,3边长度,求第三点坐标
喜欢 (0)
[1034331897@qq.com]
分享 (0)