相关疑难解决方法(0)

点与线段之间的最短距离

我需要一个基本函数来找到点和线段之间的最短距离.随意用您想要的任何语言编写解决方案; 我可以把它翻译成我正在使用的(Javascript).

编辑:我的线段由两个端点定义.所以我的线段AB由两点A (x1,y1)B (x2,y2).我试图找到这个线段和一个点之间的距离C (x3,y3).我的几何技能很生疏,所以我看到的例子令人困惑,我很遗憾地承认.

language-agnostic geometry distance line-segment

337
推荐指数
19
解决办法
24万
查看次数

找到从点到复杂曲线的最小距离

我有一个复杂的曲线定义为表中的一组点,如此(完整的表在这里):

#  x   y
1.0577  12.0914
1.0501  11.9946
1.0465  11.9338
...
Run Code Online (Sandbox Code Playgroud)

如果我使用命令绘制此表:

plt.plot(x_data, y_data, c='b',lw=1.)
plt.scatter(x_data, y_data, marker='o', color='k', s=10, lw=0.2)
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

在此输入图像描述

我手动添加红点和段的地方.我需要的是一种计算每个点的那些段的方法,即:找到从该2D空间中的给定点到插值曲线的最小距离的方法.

我不能使用到数据点本身的距离(产生蓝色曲线的黑点),因为它们不是以相等的间隔定位,有时它们是接近的,有时它们相距很远,这深深地影响了我的结果.线.

由于这不是一个表现良好的曲线,我不能确定我能做什么.我尝试使用UnivariateSpline进行内插,但它返回的非常差:

# Sort data according to x.
temp_data = zip(x_data, y_data)
temp_data.sort()
# Unpack sorted data.
x_sorted, y_sorted = zip(*temp_data)

# Generate univariate spline.
s = UnivariateSpline(x_sorted, y_sorted, k=5)
xspl = np.linspace(0.8, 1.1, 100)
yspl = s(xspl)

# Plot.
plt.scatter(xspl, yspl, marker='o', color='r', s=10, lw=0.2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我也试过增加插值点的数量但是弄得一团糟:

# Sort data according …
Run Code Online (Sandbox Code Playgroud)

python interpolation numpy spline scipy

16
推荐指数
2
解决办法
6686
查看次数