Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Многоугольник и окружность [D7, XP]


Страницы:   1 2

MasteR2 ©   (2006-05-14 11:51:00) 

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


MasteR2   (2006-05-15 06:49:00) [1]


> Eraser

Не-не, это не так


Eraser   (2006-05-15 00:48:00) [2]


> MasteR2 ©   (14.05.06 21:07) [20]

а что не понятного то? Y - середина "габаритного" прямоугольника.


MasteR2   (2006-05-14 21:07:00) [3]

Спасибо! Остался единственный тупик - найти Y. Где (X,Y) - центр окружности, центр самой длинной линии многоугольника. X находится через габаритный прямоугольник


antonn   (2006-05-14 19:43:00) [4]

не, не так:
canvas.ellipce(х-radiusX,у-radiusY,х+radiusX,у+radiusY);
:)


MasteR2   (2006-05-14 19:16:00) [5]

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


antonn   (2006-05-14 19:05:00) [6]

минимально возможный радиус, как я понял.


TUser   (2006-05-14 18:25:00) [7]

Если окружность должна включать все вершины - то надо рассмотреть n-2 треугольников. Радиусы и центры описанных окружностей должны совпадать.


Рамиль   (2006-05-14 17:36:00) [8]


> но описанная окружность вроде должна включать все вершины

Тогда задача не имеет решение в общем случае


Eraser   (2006-05-14 17:33:00) [9]


> Desdechado ©   (14.05.06 17:28) [13]

по ТЗ вроде нет.


Desdechado   (2006-05-14 17:28:00) [10]

я мож чего не понимаю, но описанная окружность вроде должна включать все вершины


MasteR2   (2006-05-14 17:07:00) [11]

Спасибо, Eraser, щас обмозгуем...


Eraser   (2006-05-14 16:42:00) [12]


> Eraser ©   (14.05.06 16:28) [10]

> 4. Полученый Rect полностью характерезует эллипс, который
> надо построить.
> 5. Строим собственно эллипс, CreateEllipticRgnIndirect.

уточнение: строим эллипс не по полученому Rect, а по преобразованному - с длиной стороны равной диагонали полученного ректа.


Eraser   (2006-05-14 16:28:00) [13]


> MasteR2 ©   (14.05.06 11:51)

Я бы делал примерно так:
1. Посторил по заданным точкам многоугольный регион, CreatePolygonRgn.
2. Получил бы минимальный прямоугольник, который в который поместился бы данный регион, GetRgnBox.
4. Полученый Rect полностью характерезует эллипс, который надо построить.
5. Строим собственно эллипс, CreateEllipticRgnIndirect.


MasteR2   (2006-05-14 16:21:00) [14]

Уже разобрался. Но со своей задачей так и не могу никак справиться:(


EvS   (2006-05-14 15:57:00) [15]

Ellipse(x1,y1,x2,y2:Integer);
x1,y1-координаты левого верхнего угла,
x2,y2-координаты нижнего правого угла


MasteR2   (2006-05-14 15:52:00) [16]

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


MasteR2   (2006-05-14 15:26:00) [17]

PaintBox1.Canvas.Ellipse(trunc(MaxX)+299+7,trunc(MinY)+299-12,trunc(MinX)+299+7,trunc(MinY)+299-12);
вот так и пробую


EvS   (2006-05-14 15:22:00) [18]

Как пробуешь-то?


MasteR2   (2006-05-14 15:20:00) [19]

Да, тоже жопа! Пробую, пробую - по нолям!


Жуков Олег   (2006-05-14 14:53:00) [20]

Canvas.Ellipse(....)?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо