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

How can I check one ellipse is inside the another ellipse by using MATLAB?

我正在尝试查找两个省略号的状态。

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

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);

如果椭圆不有趣,我得到虚数解。如下所示,可以有两次假想的解决方案:

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

提前致谢! 马努

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

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

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

其中 (c1,d1)ellipse2 的中心

  • 如果是,则情况二。

  • 否则就是第一种情况

我们知道这一点是因为

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

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

Then one ellipse must be completely contained in the other

注意:根据这个测试,我们不知道哪个椭圆在另一个椭圆里面。