Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Нарисованная окружность


Автор: PMOLO 8.5.2012, 11:16
Дан рисунок, на котором изображена окружность. Построить в эту окружность вписанный квадрат. По какому алгоритму можно построить туда вписанный квадрат? Подскажите!

Автор: Skevalt 8.5.2012, 11:27
Можно попробовать такой алгоритм, если рассматривать рисунок, как черно-белый bitmap, например:
1) найти центр масс пикселей черного цвета - так определится центр окружности
2) найти самый левый и самый правый черный пиксель - так определится диаметр окружности
3) зная координаты центра окружности и диаметр, можно найти координаты вершин вписанного квадрата следующим образом 
(x0 - r; y0)
(x0 + r; y0)
(x0; y0 - r)
(x0; y0 + r) 
Таким образом, получится квадрат, вписанный в окружность (квадрат будет "стоять" на угле, т.е., повернут на 45 градусов)

Автор: PMOLO 8.5.2012, 11:38
Спасибо, попробую так сделать!

Автор: Skevalt 8.5.2012, 11:41
Можно даже не искать центры масс, а найти координаты самого левого, правого, верхнего и нижнего пикселя, соответственно, откуда выразить координаты центра. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)