Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-53450
lokid7
2004-02-06 17:11
2004.02.17
Взаимодействие между двумя классами


1-53576
3APA3A
2004-02-08 21:28
2004.02.17
Цветной заголовок у GroupBox а...


4-53817
QUSTION
2003-12-12 12:19
2004.02.17
МОЖНО ЛИ В WIN2000/XP прятать прогу от CTRL+ALT+DELETE ?


1-53543
JediMaster
2004-02-05 12:51
2004.02.17
Сложение чисел в 2ичной системе счислени!


14-53733
Knight
2004-01-28 20:17
2004.02.17
Нужна программа, чтобы отсканерить книгу.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский