![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многоугольник и окружность [D7, WinXP]
MasteR2 © (2006-05-14 11:48:00)Может кто сталкивался, подскажите. Задание такое: дан многоугольник(необязательно выпуклый) координатами своих вершин, построить описанную вокруг него окружность.
Проблема в вычислении радиуса(диаметра) этой окружности и размещении её вокруг многоугольника. Многоугольник строю через Polygon, а окружность через Shape.
Dead Man (2006-05-14 23:45:00) [1]Можно, если написать процедуру Circle.
MasteR2 (2006-05-14 19:15:00) [2]Слушайте, а в Delphi можно построить окружность типа Паскаля?
MoveTo(X,Y);
Circle(radiusX ,radiusY);
MasteR2 (2006-05-14 16:03:00) [3]Верхний левый и нижний правый. Спасибо
MBo (2006-05-14 15:52:00) [4]>В Ellipse какие углы прямоугольника пишутся?
В справке написано
MasteR2 (2006-05-14 15:51:00) [5]В Ellipse какие углы прямоугольника пишутся?
MBo (2006-05-14 14:50:00) [6]Если нет необходимости использовать графический объект, то, конечно, вместо Shape надо Ellipse рисовать
MasteR2 (2006-05-14 14:24:00) [7]Допустим, диаметр найден. Как тогда мне Shape прилипить к многоугольнику?
Или вообще на Shape забить и использовать что-то другое? Только что?
MBo (2006-05-14 14:08:00) [8]Для нахождения минимальной описывающей набор точек окружности есть алгоритм "Miniball", однако он довольно нетривиальный, поэтому для небольшого числа точек можно обойтись переборным O(N^4) алгоритмом - перебираем все тройки, не лежашие на одной прямой, и проверяем, что остальные точки лежат внутри построенной на очередной тройке точек окружности
antonn (2006-05-14 13:17:00) [9]т.е. я находил границы прямоугольника, описывающего многоугольник, находил центр, выделял ближайшую и дальнуюю точку многоугольника относительно центра (расстояние до центра), брал среднее значение расстояний из этих двух точек, и сроил "новую точку центра", используя среднее расстояние к тем ближайшей и дальней точкам (т.е. равнобедренный треугольник получался). А дальше выводил окружность в "новой точке центра" и радиусом "среднего расстояния" :)
antonn (2006-05-14 13:07:00) [10]хы-хы, а то, как я когда то делал, не совсем описывание. Т.е. не минимального радиуса:)
MasteR2 (2006-05-14 12:57:00) [11]Нашел. Ну а как Shape к этому многоугольнику прилепить?
MasteR2 (2006-05-14 12:12:00) [12]Я об этом подумал, щас пробую
antonn (2006-05-14 12:04:00) [13]найти габариты многоугольника (крайние координаты), а дальше ничего сложного...