Дано:центр и радиус окружности, центр и радиусы эллипса. Необходимо определить пересекаются ли они или нет.
Есть уравнения:
(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 причин.
>>А может в полярной системе проще будет? >Бррр... а чем там проще?
чисто, что в голову приходит:
ур-е окружности:
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 и константы... правда, можно ли его решить, это уже вопрос к топиккреатору
Здравствуйте, 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
Оценка:
А>Есть такая идея: берем уравнение прямой проходящей через центры обоих фигур, очевидно, что пересечение есть в том случае если эллипс пересекает эту прямую в точке принадлежащей кругу. Хотя это только в том случае когда сфера лежит снаружи эллипса.
То есть я имел ввиду когда центр сферы лежит снаружи эллипса.
Здравствуйте, 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)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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 — расстояние между центрами)