【问题标题】:How can I check one ellipse is inside the another ellipse by using MATLAB?如何使用 MATLAB 检查一个椭圆是否在另一个椭圆内?
【发布时间】:2019-07-08 00:54:37
【问题描述】:

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

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

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

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

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

提前致谢! 手动

【问题讨论】:

  • 取两个椭圆上的任意两个点,并在这些点处计算另一个椭圆函数。如果两者都在外部(即都返回大于 1 的值),则为 case 1,否则为 case 2。

标签: matlab geometry ellipse


【解决方案1】:

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

检查ellipse1的中心(x1,x2)是否在ellipse2里面

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

(c1,d1)ellipse2 的中心

  • 如果是,你有第二种情况。

  • 否则,你有第一种情况。

我们知道这是因为

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

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

那么一个椭圆必须完全包含在另一个椭圆中

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    相关资源
    最近更新 更多