Re[2]: Общая точка
От: VEAPUK  
Дата: 15.03.09 00:58
Оценка:
Здравствуйте, subdmitry, Вы писали:

S>3. Сложный. Пересечение кругов — это или круг (возможно, нулевого радиуса) или этакий выпуклый многоугольник, у которого вместо строн дуги окружностей. Надо только написать процедуру, которая будет пересекать такую фигуру с очередной окружностью. Как это делать с целым кругом, надеюсь, понятно. Теперь многодугник Для этого будем рассматривать, как новый круг пересекается с каждой из дуг многодугника. Возможны три случая — а) новый круг содержит дугу целиком б) новый круг пересекается с дугой (в этом случае находим точки пересечения и строим на них стороны нового многодугника (эта сторона может заканчиваться как на этой дуге, так и на других дугах)) в) дуга за пределами круга (смотрим пересечения с другими дугами). Это уже точное решение.


ИМХО.
Этот алгортм можно предварить такой стадией:
Круги заменяем квадратам (понятно какими), давольно быстро находим их пересечение, м.б. точку или отрезок.
А уж потом переходим к основной стадии, избегая проверги полного вхождения круга в многодугник...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.