matlab - 如何使用 MATLAB 检查一个椭圆是否在另一个椭圆内?

标签 matlab geometry ellipse

我正在尝试查找两个椭圆的状态。

我尝试使用以下代码找到两个椭圆的交集:

syms x y
a=4;
b=2;
ellipse1 = ((x+10).^2/a.^2)+(y.^2/b.^2)==1;
a1=6;
b1=5;
ellipse2 = ((x-10).^2/a1.^2)+(y.^2/b1.^2)==1;
c = solve(ellipse1,ellipse2);

dX = double(c.x);
dY = double(c.y);

如果省略号不感兴趣,我会得到虚值解。想象的解决方案可能有两次机会,如下所示:

Seperated Ellipses

One ellipse is inside the another

如何判断椭圆是否相交?如果不相交,椭圆的位置是什么(内部或分开)? 有人可以回复吗?

提前致谢! 马努

最佳答案

假设您已经知道椭圆不相交(即您从 solve() 函数获得了一个虚值解)。

检查椭圆1的中心(x1,x2)是否在椭圆2内

((x1-c1).^2/a1.^2)+((y1-d1).^2/b1.^2) < 1

其中(c1,d1)椭圆2的中心

  • 如果是,则属于第二种情况。

  • 否则,您遇到的是第一种情况。

我们知道这一点是因为

  • 如果 ellipse1 内部的任何部分位于 椭圆2

  • 我们知道两个椭圆不相交,

Then one ellipse must be completely contained in the other

注意:根据此测试,我们不知道哪个椭圆在另一个椭圆内部。

关于matlab - 如何使用 MATLAB 检查一个椭圆是否在另一个椭圆内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56927210/

相关文章:

math - 简单的 MATLAB/Octave 模拟

matlab - 下一个大于但不等于输入的整数

在区域内查找三角形的算法

c++ - 打砖 block 帮助。圆圈、划桨和笨拙的弹跳

emacs - 如何在 GNU Emacs 中安装 MATLAB 模式?

c++ - "Comment out pthreads"编译一个库

c++ - 将圆或样条拟合到一堆 3D 点中

python PIL : How to draw an ellipse in the middle of an image?

c# - 绘制一个椭圆,然后将其移动到另一个位置

R:绘制一个 95% 置信度椭圆并排除椭圆外的所有观测值