如何解决给定两个点Ax1,y1和Bx2,y2,我想找到第三点Cx3,y3与线AB之间的距离以及球面上AD的长度
我有两个点,我需要线AB和点C之间的距离。与此同时,我还想要AD的长度,其中D是C在AB上的投影/交叉点。在二维中,我可以得到这里提到的投影点,但是::
double A=thirdX-startX;
double B=thirdY-startY;
double C=endX-startX;
double D=endY-startY;
double dot = A * C + B * D;
double len_sq = C * C + D * D;
double xProjection,yProjection,param;
param = dot / len_sq;
if (param < 0) {
xProjection = startX;
yProjection = startY;
}
else if (param > 1) {
xProjection = endX;
yProjection = endY;
}
else {
xProjection = startX + param * C;
yProjection = startY + param * D;
}
double deltaX= thirdX -xProjection;
double deltaY= thirdY-yProjection;
double AD= Math.sqrt(deltaX*deltaX+deltaY*deltaY);
double AD= Math.sqrt((startX-xProjection)*(startX-xProjection)+(startY-yProjection)*(startY-yProjection));
但是考虑到球体的坐标而不是二维表面上的坐标,我想做同样的事情,谢谢! enter image description here
解决方法
关于球面/地球计算的非常有用的链接:https://www.movable-type.co.uk/scripts/latlong.html 跨轨距离和沿轨距离分别给了我CD和AD。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。