确定两个椭圆(3 d)之间的距离

确定最小距离两个椭圆之间(以及相应的角度)

1 k下载

更新2020年5月2日

从GitHub

查看许可GitHub

发现问题的几何(最小)之间的距离两个任意椭圆非常困难。找到所有固定的一般问题点(最小/最大/鞍,不少于12分)确实被解决,但是算法的复杂和需要数千如果不是数以百万计的实现操作一次。
函数distanceEllipseEllipse()是基于一个更实用的算法自己限制到最小值的距离函数。它是基于反复寻找一个点和一个椭圆之间的距离,可以做分析(见我的其他帖子,distanceEllipsePoints.m)。该算法本身不是很健壮(经常发现一个局部最小值,这不是* *真正的距离)。
这个函数执行算法4倍,4种不同的初始值,从而大大提高了其鲁棒性。一些数值试验(与蛮力搜索)已经表明,真正的最小距离是在95%以上的情况下返回。实现的算法,用MATLAB JIT-accelerator可以加速到最大的程度,这使得它非常快,适合处理大型数据集需要这个计算。
这是一个描述的算法的实现
Ik-Sung金:“一个算法寻找两个之间的距离
%椭圆”。Commun。韩国的数学。Soc。21(2006),第三,pp.559 - 567。

一个copy-pastable例子(也在头的m文件):

% Ellipse1 Ellipse2(=圆)
一个= (2.0 - 1.0);
b = (0.5 - 1.0);
c = {(0, 0, 0), (2 2 0)};%的中心位置
u = {(1,0,0), (1,0,0)};%都面向在xy平面
v = {(0,1,0) (0,1,0)};%更容易想象他们

%画出椭圆
f = 0:0.01:2 *π;
E1 = [(1) * cos (f) + c {1} (1);b (1) * sin (f) + c {1} (2)];
E2 = [(2) * cos (f) + c {2} (1);b (2) * sin (f) + c {2} (2)];
图,等
情节(E1 (1:), E1 (2:),‘r’, E2 (1:), E2 (2:),“b”)
轴平等

%运行例程
[min_dist, fp_min fs_min] =…
distanceEllipseEllipse (a, b, c, u, v)

%绘制返回的最小距离
x = [(1) * cos (fp_min) + c {1} (1), (2) * cos (fs_min) + c {2} (1)];
y = [b(1) *罪(fp_min) + c {1} (2), (2) b *罪(fs_min) + c {2} (2)];
线(x, y,“颜色”,“k”)

这将生成给定的屏幕截图。

引用作为

Rody Oldenhuis (2023)。确定两个椭圆(3 d)之间的距离GitHub (https://github.com/rodyo/FEX-distanceEllipseEllipse/releases/tag/v1.3)。检索

MATLAB版本兼容性
创建R2009b
兼容任何释放
平台的兼容性
窗户 macOS Linux

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

版本使用GitHub缺省分支不能下载

版本 发表 发布说明
1.3

GitHub上看到这个版本发布说明:https://github.com/rodyo/FEX-distanceEllipseEllipse/releases/tag/v1.3

1.2.0.0

(链接到Github)
描述更新

1.1.0.0

更新联系信息

1.0.0.0

问题在这个视图或报告GitHub插件,参观GitHub库
问题在这个视图或报告GitHub插件,参观GitHub库