Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 307

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Я тут столкнулся с одной задачей(точнее мне ее задали как д.з), я вроде программированием 2 года занимаюсь а решить немогу, помогите плз.

Приложение:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. e.in e.out
  18. 0 0 1000
  19. 0 0 500
  20. 0 0 500
  21.  
  22. possible
  23. -468.09507906626652000000 -883.67810709213904000000
  24. -531.24014997680422000000 847.22128340394170000000
  25. 999.33522904307131000000 36.45682368819722500000
  26.  
  27.  
  28.  


Черняев Саша Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Черняев Саша (статус: Посетитель)
Вопрос отправлен: 20 октября 2009, 22:51
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Егор

Здравствуйте, Черняев Саша!

идея есть, как решить. реализацию оставляю автору вопроса, ибо, как правильно заметил min@y™: "а какого...?"

вычислять касательную двух кругов можно, но это долго.
можно пойти другим путём :)

в целом, идея такая:

1) по центрам окружностей деревьев проводим прямую
2) находим точки пересечения этой прямой и окружности клумбы (пусть будут точки 1 и 2)
3) вычисляем точки пересечения прямой с окружностями каждого из деревьев (пусть будут А, В, С и D)
4) пусть текущей будет точка А
5) проводим в текущей точке перпендикуляр к прямой
6) находим пересечение этого перпендикуляра с внешней окружностью (клумбой) - пусть будут точки E и F
7) по точкам E, F и 1 строим треугольник, проверяем, входят ли в него оба дерева - входят - танцуем
8) если не входят, то строим треугольник по точками E, F и 2, проверяем, входят ли деревья в этот треугольник
9) если деревья не входят ни туда, ни сюда, то не расстраиваемся - делаем текущей следующую точку (В, С, D) и возвращаемся к шагу 5
10) а вот тут расстраиваемся, что треугольник не получился...

з.ы. можно, конечно, ещё подоптимизировать алгоритм, например, не проверять точки В и С, треугольник строить только по точке 1 или 2 (по которой имеет смысл) и т.д.

правда, я гений?

:))))))))

Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 21 октября 2009, 19:59
Оценка за ответ: 5

Комментарий к оценке: Спасибо огромное!!!

Мини-форум вопроса

Всего сообщений: 21; последнее сообщение — 9 ноября 2009, 19:23; участников в обсуждении: 6.

Страницы: [« Предыдущая] [1] [2]

prog-mer

prog-mer (статус: Посетитель), 9 ноября 2009, 19:23 [#21]:

Но так до конца и не решили!

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 22:05
Выполнено за 0.02 сек.