Форум: "Media";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
ВнизТочка внутри замкнутого контура Найти похожие ветки
← →
Ivan Voronov (2003-10-15 14:11) [0]Уважаемые коллеги!
Подскажите алгоритм нахождения точки внутри замкнутого контура, заданного отрезками и дугами.
Или подскажите прямое решение:
Нужно закрасить замкнутую область, заданную отрезками и дугами.
Заранее бгагодарен,
Иван.
Заранее спасибо,
Иван.
← →
MBo (2003-10-15 14:14) [1]поиск в инете по словам - "Закраска (замкнутых) областей"
← →
MBo (2003-10-15 14:16) [2]кстати - задача алгоритм составить или просто закрасить? если второе - ExtFloodFill или TCanvas.FloodFill
← →
Nikolay M. (2003-10-15 14:40) [3]
> алгоритм нахождения точки внутри замкнутого контура
Вокруг одной из вершин нарисовать окружность, диаметр которой меньше составляющих отрезков и дуг. Разделить окружность точками на 4 части, проверить каждую из точек на принадлежность области, если ни одна не принадлежит, каждую четверть окружности разделить еще пополам и так до тех пор, пока на окружности не найдется точка внутри области.
← →
Ivan Voronov (2003-10-15 14:42) [4]2Mbo:
Есть контур из отрезков и дуг.
я полагаю:
1. Найти точку внутри контура.
2. закрасить с помощью FloodFill.
← →
Ivan Voronov (2003-10-15 14:44) [5]2Nikolay M.:
>проверить каждую из точек на принадлежность области, если
КАК???
← →
MBo (2003-10-15 14:48) [6]можно рисовать в Beginpath-EndPath, затем закрасить Pаth непосредственно, или преобразовав его в регион
← →
BOA_KAA (2003-10-15 14:54) [7]http://algolist.manual.ru/maths/geom/datastruct.php
Там, кажется, было. Если нет, то см. Шикин, Боресков "Компьютерная графика. Полигональные модели."
Я бы дал реализацию, но пока еще она немного глючит :(
← →
Nikolay M. (2003-10-15 14:59) [8]
> Ivan Voronov (15.10.03 14:44) [5]
> >проверить каждую из точек на принадлежность области, если
> КАК???
Алгоритмы на то существуют разные. Поскольку область, как я понимаю, произвольна, т.е. не обязательно выпукла, тогда можно так: от данной точки проводишь отрезок к первой и второй вершинам, считаешь угол между ними, проводишь отрезок к 3-й вершине, считаешь угол между этим отрезком и отрезком до 2-й вершины и тд, всего N углов, где N - кол-во вершин. Если голова варит, значит сообразишь, чему должна быть равно сумма все углов, когда точка внутри контура и чему - когда снаружи. Естественно, дуги нужно заменить на последовательность отрезков.
← →
Ivan Voronov (2003-10-15 15:35) [9]2MBo:
>можно рисовать в Beginpath-EndPath, затем закрасить Pаth >непосредственно, или преобразовав его в регион
Спасибо,
попробую...
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c