相关疑难解决方法(0)

如何计算球体上从点到线段的距离?

我在地球上有一个线段(大圆圈部分).线段由其末端的坐标定义.显然,两个点定义了两个线段,所以假设我对较短的线段感兴趣.

我得到了第三点,我正在寻找线和点之间的(最短)距离.

所有坐标均以经度\纬度(WGS 84)给出.

我该如何计算距离?

任何合理的编程语言都可以使用解决方案.

language-agnostic gis geometry distance geospatial

26
推荐指数
1
解决办法
1万
查看次数

在最接近另一个点的线段上获取点

我想在线段AB上找到一个点,该点最接近另一个点P。

我的想法是:

  1. 使用A和B点坐标获取a1b1获取线型公式y1 = a1x + b1
  2. a1和P坐标获取法线公式y2 = a2x + b2
  3. 通过等式y1y2下一个使用上面的公式之一来获得交点x坐标,以得到y。

在此处输入图片说明

我的代码:

#include <SFML\Graphics.hpp>
#include <iostream>

sf::Vector2f getClosestPointOnLine(sf::Vector2f A, sf::Vector2f B, sf::Vector2f P)
{
    //convert to line formula
    float a = (B.y - A.y)/(B.x - A.x);
    float b = -a * A.x + A.y;

    //get normal line formula
    float a2 = -a / 2;
    float b2 = -a2 * P.x + P.y;

    //get x …
Run Code Online (Sandbox Code Playgroud)

c++ math sfml

3
推荐指数
1
解决办法
1979
查看次数

标签 统计

c++ ×1

distance ×1

geometry ×1

geospatial ×1

gis ×1

language-agnostic ×1

math ×1

sfml ×1