我正在尝试查找两个椭圆的状态。
我尝试使用以下代码找到两个椭圆的交点:
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);
如果省略号不有趣,我得到虚值解。如下所示,有两种可能的假想解决方案:
如何找到椭圆相交或不相交?如果不相交,椭圆(内部或分隔)的位置将是什么? 任何人都可以回复吗?
提前谢谢! Manu
答案 0 :(得分:3)
假设您已经知道椭圆不相交(即您从solve()
函数获得了一个假想的值解)。
检查ellipse1的中心(x1,x2)
是否在ellipse2内
((x1-c1).^2/a1.^2)+((y1-d1).^2/b1.^2) < 1
其中(c1,d1)
是 ellipse2
如果是,您有第二种情况。
否则,您就有第一种情况。
我们知道这一点是因为
如果 ellipse1 内部的任何部分在内部 ellipse2
,我们知道两个椭圆不相交,
那么一个椭圆必须完全包含在另一个椭圆中
注意:根据该测试,我们不知道哪个椭圆在另一个椭圆内。