Другие языки программирования и технологии

Помогите понять задачу по математике?

Пишу программу на Си. Нужно определить, пересекает ли парабола y=ax^2 + b прямоугольник с координатами противоположных вершин (x1,y1), (x2,y2) и, если пересекает, найти все точки пересечения. Какие действия формулы нужны использовать чтобы решить данную задачу?
Что означает пересечение параболой прямоугольника?
– пересечение параболы с его сторонами

Что означает пересечение со сторонами?
– хотя бы одна точка параболы находится на прямой, на которой лежит сторона и при этом эта точка лежит между угловыми точками прямоугольника, лежащими на этой прямой

Как решать?
1) нас заданы 2 диагональные точки прямоугольника: (x1, y1) и (x2, y2)
2) получается, что прямоугольник ограничен четырьмя прямыми:
y = x1 (горизонтальная прямая)
y = x2 (горизонтальная прямая)
x = y1 (вертикальная прямая)
x = y2 (вертикальная прямая)
При этом все найденные точки пересечения с параболой должны удовлетворять следующим условиям:
min(x1,x2) <= x <= max(x1,x2)
min(y1,y2) <= y <= max(y1,y2)

Последовательно ищем пересечения:
1) y = a*x^2 + b и y = x1:
получаем: x1 = a*x^2 + b
или
x = Корень ((x1 - b) / a)
x = -Корень ((x1 - b) / a)
проверяем, входят ли эти иксы в диапазон [x1,x2]
если входят, то точка (x, x1) – точка пересечения

Повторяем для оставшихся трёх прямых
Афиг Аббасов
Афиг Аббасов
1 098
Лучший ответ
Находишь уравнения всех четырёх отрезков, затем левую часть уравнения подставляешь в уравнение параболы и находишь общие точки)
Сергей Фролов
Сергей Фролов
73 819
да нафиг тебе эта школа если задачки не интересно решать, естественно ты все найдешь в интернете, лучше постарался бы решить чужие проблемы, типо битвы добра со злом