Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2014, 12:06   #1
noisor
Пользователь
 
Регистрация: 15.10.2014
Сообщений: 10
Сообщение Круги

Даны три точки на плоскости. В этих точках с скоростями dR из нулевого радиуса начинают расти окружности. В тот момент, когда одна окружность касается другой (получает одну общую точку), обе эти окружности прекращают расти. Необходимо вывести на экран площадь треугольника, образованного точками пересечения этих окружностей. Если такой треугольник построить не получится, необходимо вывести слово ERROR.
Формат входных данных
9 вещественных чисел: x0; y0; dR0; x1; y1; dR1; x2; y2; dR2.
Формат результата
Вещественное число c 6 числами после запятой - площадь треугольника. Если данный треугольник не будет существовать, необходимо вывести слово ERROR.
noisor вне форума Ответить с цитированием
Старый 22.10.2014, 12:40   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Интересная задача...
Вадим Мошев вне форума Ответить с цитированием
Старый 22.10.2014, 16:14   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

расстояние между точками разделить на сумму роста скоростей окружностей, получим время "встречи" окружностей. Нужно для всех трёх пар (1-я точка со 2-й, 1-я точка с 3-й, 2-я точка с 3-й) найти минимальное время. это даст время остановки роста двух кругов. по времени легко найти точку "встречи" (её координаты).
Потом надо рассмотреть оставшуюся точку и найти время и место пересечения с двумя полученными кругами.


p.s. кстати, насколько я понимаю, чаще всего будет выпадать случай, когда точек пересечения всёго две, т.е. треугольник построить не удастся...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.10.2014, 10:41   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

только математика.

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.
evg_m вне форума Ответить с цитированием
Старый 23.10.2014, 13:13   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
P/S ЗАМЕТИЛ только что dR0, dR1 dR2
А я уже собирался писать, что скорости роста как раз известны (указаны) и, в общем случае, не одинаковы...

в остальном полностью согласен.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа по растровой графике в 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