簡體   English   中英

給定兩個點 A(x1,y1) & B(x2,y2),我想在球面上找到第三點 C(x3,y3) 和線 AB 之間的距離和 AD 的長度

[英]Given two points A(x1,y1) & B(x2,y2), I want to find the distance between the third point C(x3,y3) and line AB and length of AD on spherical surface

我有兩點,我需要線 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));

但是考慮到球體上的坐標而不是二維表面上的坐標,我也想做同樣的事情。提前致謝! 在此處輸入圖片說明

在球面/地球上進行計算的非常有用的鏈接: https : //www.movable-type.co.uk/scripts/latlong.html交叉軌道距離和沿軌道距離分別給了我 CD 和 AD。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM