如何使用 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
注意:根据这个测试,我们不知道哪个椭圆在另一个椭圆里面。
我正在尝试查找两个省略号的状态。
我尝试使用以下代码找到两个椭圆的交集:
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
注意:根据这个测试,我们不知道哪个椭圆在另一个椭圆里面。