![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 15.10.2014
Сообщений: 10
|
![]()
Даны три точки на плоскости. В этих точках с скоростями dR из нулевого радиуса начинают расти окружности. В тот момент, когда одна окружность касается другой (получает одну общую точку), обе эти окружности прекращают расти. Необходимо вывести на экран площадь треугольника, образованного точками пересечения этих окружностей. Если такой треугольник построить не получится, необходимо вывести слово ERROR.
Формат входных данных 9 вещественных чисел: x0; y0; dR0; x1; y1; dR1; x2; y2; dR2. Формат результата Вещественное число c 6 числами после запятой - площадь треугольника. Если данный треугольник не будет существовать, необходимо вывести слово ERROR. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
Интересная задача...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
расстояние между точками разделить на сумму роста скоростей окружностей, получим время "встречи" окружностей. Нужно для всех трёх пар (1-я точка со 2-й, 1-я точка с 3-й, 2-я точка с 3-й) найти минимальное время. это даст время остановки роста двух кругов. по времени легко найти точку "встречи" (её координаты).
Потом надо рассмотреть оставшуюся точку и найти время и место пересечения с двумя полученными кругами. p.s. кстати, насколько я понимаю, чаще всего будет выпадать случай, когда точек пересечения всёго две, т.е. треугольник построить не удастся... |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
только математика.
0. Соприкосновение окружностей возможно исключительно на отрезках соединяющих их центры. 1. поскольку скорости роста не указаны, то предполагаем их одинаковыми. 2. скорости роста одинаковы, значит любые две окружности встретятся на середине отрезка соединяющего их центры. 3. первыми встретятся две окружности у которых наименьшее расстояние между центрами (и их радиус одинаково равен половине расстояния между их центрами). 4. ОДНА оставшаяся окружность будет расти до встречи с любой из замерших окружностей до радиуса (расстояние межу центрами без радиуса замерших окружностей). 5. коснется ли она другой? только в том случае если расстояние между их центрами также будет равно сумме их радиусов. Для успешного соединения всех трех окружностей при равной скорости треугольник образованный исходными точками (центрами окружностей) должен быть равнобедренным и основание должно быть меньше боковой стороны. В этом случае искомый треугольник получается из исходного "отрезанием" трех равнобедренных один из которых подобен исходному { k=(b-a/2) /b } и также будет равнобедренным с основанием параллельным основанию исходного. S=(1/4)*a*((1-a/(2*b))**2)*sqrt(4*(b**2)-(a**2)) ![]() P/S ЗАМЕТИЛ только что dR0, dR1 dR2
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 23.10.2014 в 10:45. |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
![]() в остальном полностью согласен. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программа по растровой графике в delphi, как сделать чтобы круги строились по циклам?? | Alexxx_screen | Помощь студентам | 28 | 04.09.2011 23:04 |
Графика в Паскале Дождь и круги на воде | Klik_1602 | Помощь студентам | 1 | 29.03.2011 23:51 |
Круги в паскале | Timon779 | Помощь студентам | 1 | 10.06.2010 14:21 |
Круги Эйлера | NecRomant | Общие вопросы Delphi | 2 | 17.12.2008 15:07 |