Как я могу проверить, что один эллипс находится внутри другого эллипса с помощью MATLAB? - PullRequest
2 голосов
/ 08 июля 2019

Я пытаюсь найти состояние двух эллипсов.

Я попытался найти пересечение двух эллипсов, используя следующий код:

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

Какя могу найти, что эллипсы пересекаются или нет?Если они не пересекаются, какими будут позиции эллипсов (внутри или отдельно)?Кто-нибудь может ответить?

Заранее спасибо!Мана

1 Ответ

3 голосов
/ 08 июля 2019

Допустим, вы уже знаете, что эллипсы не пересекаются (то есть вы получили решение мнимых значений из функции solve()).

Проверьте, находится ли центр (x1,x2) эллипса1 внутри эллипса2

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

, где (c1,d1) - центр эллипса2

  • Если это так, у вас есть случай два.

  • В противном случае у вас есть первый случай.

Мы знаем это, потому что

  • , если какая-либо часть внутренней части ellipse1 находится внутри внутренней части ellipse2

  • и мы знаем, что два эллипса не пересекаются,

Тогда один эллипс должен полностью содержаться в другом

Примечание: мы не знаем, какой эллипс находится внутри другого, основываясь на этом тесте.

...