Пересечение окружности с эллипсом
От: k55 Ниоткуда  
Дата: 10.11.05 08:42
Оценка:
Дано:центр и радиус окружности, центр и радиусы эллипса. Необходимо определить пересекаются ли они или нет.
Есть уравнения:
(x-x0)^2+(y-y0)^2=r*r
и ((x-x1)^2)/(a*a)+((y-y1)^2)/(b*b)=1
где (x0,y0) и (x1,y1) это центры фигур.
Есть идея решить эту систему. Но не могу вспомнить каким методом это решается.
Воот. Подскажите либо альтернативный метод определения пересечения, либо каким методом решить эту систему.
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
Re: Пересечение окружности с эллипсом
От: Аноним  
Дата: 10.11.05 08:43
Оценка:
А может в полярной системе проще будет?
Re[2]: Пересечение окружности с эллипсом
От: k55 Ниоткуда  
Дата: 10.11.05 09:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А может в полярной системе проще будет?

Бррр... а чем там проще?
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
Re[3]: Пересечение окружности с эллипсом
От: Вумудщзук Беларусь  
Дата: 10.11.05 09:28
Оценка:
>>А может в полярной системе проще будет?
>Бррр... а чем там проще?

чисто, что в голову приходит:

ур-е окружности:
x = xo + r*cos(alpha)
y = xo + r*sin(alpha)

ур-е эллипса:
x = x1 + a*cos(beta)
y = y2 + b*sin(beta)

т.к. они пересекаются, то
xo + r*cos(alpha) = x1 + a*cos(beta)
xo + r*sin(alpha) = y2 + b*sin(beta)

если немного поколдовать, остаётся ур-е относительно beta, где есть cos, cos^2, sin, sin^2 и константы... правда, можно ли его решить, это уже вопрос к топиккреатору
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Пересечение окружности с эллипсом
От: Аноним  
Дата: 10.11.05 09:55
Оценка: -1
Здравствуйте, k55, Вы писали:

k55>Дано:центр и радиус окружности, центр и радиусы эллипса. Необходимо определить пересекаются ли они или нет.

k55>Есть уравнения:
k55> (x-x0)^2+(y-y0)^2=r*r
k55> и ((x-x1)^2)/(a*a)+((y-y1)^2)/(b*b)=1
k55>где (x0,y0) и (x1,y1) это центры фигур.
k55>Есть идея решить эту систему. Но не могу вспомнить каким методом это решается.
k55>Воот. Подскажите либо альтернативный метод определения пересечения, либо каким методом решить эту систему.

Есть такая идея: берем уравнение прямой проходящей через центры обоих фигур, очевидно, что пересечение есть в том случае если эллипс пересекает эту прямую в точке принадлежащей кругу. Хотя это только в том случае когда сфера лежит снаружи эллипса.
Re[2]: Пересечение окружности с эллипсом
От: Аноним  
Дата: 10.11.05 09:57
Оценка:
А>Есть такая идея: берем уравнение прямой проходящей через центры обоих фигур, очевидно, что пересечение есть в том случае если эллипс пересекает эту прямую в точке принадлежащей кругу. Хотя это только в том случае когда сфера лежит снаружи эллипса.

То есть я имел ввиду когда центр сферы лежит снаружи эллипса.
Re: Пересечение окружности с эллипсом
От: Кодт Россия  
Дата: 10.11.05 10:05
Оценка:
Здравствуйте, k55, Вы писали:

k55>Дано:центр и радиус окружности, центр и радиусы эллипса. Необходимо определить пересекаются ли они или нет.

k55>Есть уравнения:
k55>                  (x-x0)^2+(y-y0)^2=r*r 
k55>            и ((x-x1)^2)/(a*a)+((y-y1)^2)/(b*b)=1

k55>где (x0,y0) и (x1,y1) это центры фигур.
k55>Есть идея решить эту систему. Но не могу вспомнить каким методом это решается.
k55>Воот. Подскажите либо альтернативный метод определения пересечения, либо каким методом решить эту систему.

Перенесём центр системы координат в точку (x0,y0) и отмасштабируем координаты, умножив на r.
Получается задача:

Дано: эллипс с центром в X,Y и полуосями A,B
Найти: пересекается ли он с единичной окружностью.

Уравнение эллипса в полярных координатах — не помню, сейчас выведу:
(x,y)(t) = (X+A*cos(t),Y+B*cos(t))

ф(t) = arctg(x(t)/y(t)) — но это нам не интересно
r(t)^2 = x(t)^2 + y(t)^2 = X^2 + Y^2 + 2XA*cos(t)^2 + 2YA*sin(t)^2 + A*cos(t) + B*sin(t)

Нужно решить уравнение r(t)^2 == 1
Перекуём баги на фичи!
Re[2]: Пересечение окружности с эллипсом
От: ghost92  
Дата: 10.11.05 12:55
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, k55, Вы писали:


k55>>Дано:центр и радиус окружности, центр и радиусы эллипса. Необходимо определить пересекаются ли они или нет.

k55>>Есть уравнения:
k55>> (x-x0)^2+(y-y0)^2=r*r
k55>> и ((x-x1)^2)/(a*a)+((y-y1)^2)/(b*b)=1
k55>>где (x0,y0) и (x1,y1) это центры фигур.
k55>>Есть идея решить эту систему. Но не могу вспомнить каким методом это решается.
k55>>Воот. Подскажите либо альтернативный метод определения пересечения, либо каким методом решить эту систему.

А>Есть такая идея: берем уравнение прямой проходящей через центры обоих фигур, очевидно, что пересечение есть в том случае если эллипс пересекает эту прямую в точке принадлежащей кругу. Хотя это только в том случае когда сфера лежит снаружи эллипса.


Не верное утверждение.
Например эллипс с ценром (0,0), a = 100, b = 0,01, круг c центром (100,100), радиусом 100.
Пересесечений 2, и оба не на прямой x=y.
Re[2]: Пересечение окружности с эллипсом
От: tavr  
Дата: 14.11.05 17:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, k55, Вы писали:


k55>>Дано:центр и радиус окружности, центр и радиусы эллипса. Необходимо определить пересекаются ли они или нет.

k55>>Есть уравнения:
k55>> (x-x0)^2+(y-y0)^2=r*r
k55>> и ((x-x1)^2)/(a*a)+((y-y1)^2)/(b*b)=1
k55>>где (x0,y0) и (x1,y1) это центры фигур.
k55>>Есть идея решить эту систему. Но не могу вспомнить каким методом это решается.
k55>>Воот. Подскажите либо альтернативный метод определения пересечения, либо каким методом решить эту систему.

А>Есть такая идея: берем уравнение прямой проходящей через центры обоих фигур, очевидно, что пересечение есть в том случае если эллипс пересекает эту прямую в точке принадлежащей кругу. Хотя это только в том случае когда сфера лежит снаружи эллипса.


ага, хорошее решение
причем чтобы отбросить очевидные, можно рассматривать только случай b < d-r < a (d — расстояние между центрами)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.