Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

Многоугольник и окружность   Найти похожие ветки 

 
MasteR2 ©   (2006-05-14 11:48) [0]

Может кто сталкивался, подскажите. Задание такое: дан многоугольник(необязательно выпуклый) координатами своих вершин, построить описанную вокруг него окружность.
Проблема в вычислении радиуса(диаметра) этой окружности и размещении её вокруг многоугольника. Многоугольник строю через Polygon, а окружность через Shape.


 
antonn ©   (2006-05-14 12:04) [1]

найти габариты многоугольника (крайние координаты), а дальше ничего сложного...


 
MasteR2 ©   (2006-05-14 12:12) [2]

Я об этом подумал, щас пробую


 
MasteR2 ©   (2006-05-14 12:57) [3]

Нашел. Ну а как Shape к этому многоугольнику прилепить?


 
antonn ©   (2006-05-14 13:07) [4]

хы-хы, а то, как я когда то делал, не совсем описывание. Т.е. не минимального радиуса:)


 
antonn ©   (2006-05-14 13:17) [5]

т.е. я находил границы прямоугольника, описывающего многоугольник, находил центр, выделял ближайшую и дальнуюю точку многоугольника относительно центра (расстояние до центра), брал среднее значение расстояний из этих двух точек, и сроил "новую точку центра", используя среднее расстояние к тем ближайшей и дальней точкам (т.е. равнобедренный треугольник получался). А дальше выводил окружность в "новой точке центра" и радиусом "среднего расстояния" :)


 
MBo ©   (2006-05-14 14:08) [6]

Для нахождения минимальной описывающей набор точек окружности есть алгоритм "Miniball", однако он довольно нетривиальный, поэтому для небольшого числа точек можно обойтись переборным O(N^4) алгоритмом - перебираем все тройки, не лежашие на одной прямой, и проверяем, что остальные точки лежат внутри построенной на очередной тройке точек окружности


 
MasteR2 ©   (2006-05-14 14:24) [7]

Допустим, диаметр найден. Как тогда мне Shape прилипить к многоугольнику?
Или вообще на Shape забить и использовать что-то другое? Только что?


 
MBo ©   (2006-05-14 14:50) [8]

Если нет необходимости использовать графический объект, то, конечно, вместо Shape надо Ellipse рисовать


 
MasteR2 ©   (2006-05-14 15:51) [9]

В Ellipse какие углы прямоугольника пишутся?


 
MBo ©   (2006-05-14 15:52) [10]

>В Ellipse какие углы прямоугольника пишутся?
В справке написано


 
MasteR2 ©   (2006-05-14 16:03) [11]

Верхний левый и нижний правый. Спасибо


 
MasteR2 ©   (2006-05-14 19:15) [12]

Слушайте, а в Delphi можно построить окружность типа Паскаля?
MoveTo(X,Y);
Circle(radiusX ,radiusY);


 
Dead Man   (2006-05-14 23:45) [13]

Можно, если написать процедуру Circle.



Страницы: 1 вся ветка

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
15-1165981717
Slider007
2006-12-13 06:48
2006.12.31
С днем рождения ! 13 декабря


15-1165958934
Alexander S
2006-12-13 00:28
2006.12.31
Поиск программистов для совместной работы над проектом


2-1165772153
lobach
2006-12-10 20:35
2006.12.31
Как отследить запуск приложения?


1-1158053382
Calibr
2006-09-12 13:29
2006.12.31
Вставка в чужое окно.


11-1141250469
Maloric
2006-03-02 01:01
2006.12.31
Вопрос по TKOLMemo (MCK)