Статья из сайта petrovlam.ru
Автор: Петров В. М.
Введена 27.07.2007
Последнее обновление: Доработана: 29.10.2009

Часть 3       Примеры применения П-функций
для анализа двумерных контуров

 

 

     Аннотация.   В этой части приводится описание метода графической аппликации для двумерного моделирования.

 

 

Суть метода состоит в том, что вместо вычисления принадлежности точки по её координатам отслеживается контур по цветовому коду точек, его образующих. Тем самым анализ координат переносится из области чистой математики в область экранных технологий.

На рисунке 3-1 показана пара взаимодействующих БФ.

В зависимости от операции, которую требуется произвести над этой парой, выбирается маршрут продвижения точки-анализатора (далее – «Анализатор»).

Рис. 3-1 Пара взаимодействующих БФ

Пусть БФ «Прямоугольник» идентифицируется как БФ-1. БФ «Эллипс ® БФ-2. Цвета контуров БФ-1 и БФ-2 ® уникальным цветом С1.

Сложение

Для курсора выбирается позиция внутри зоны пересечения БФ, например, в точке «А» (выбор чисто визуальный). Если зона отсутствует, то и задача объединения «снимается с повестки дня». Запускается подпрограмма «Сложение».

Первая процедура подпрограммы (выход на точку контура) заставляет «Анализатор» двигаться слева направо (по оси х) и проверять по дороге цвет пикселей, оказавшихся на его пути. Движение происходит до тех пор, пока на пути «Анализатора» окажется пиксель, имеющий цвет С1. После этого найденный пиксель обесцвечивается. «Анализатор» занимает его место. Программа «оглядывает» пространство по часовой стрелке (!) вокруг занимаемого «Анализатором» (обесцвеченного) пикселя. «Оглядывание начинается от пикселя, только что покинутого «Анализатором». «Анализатор» находит при этом «оглядывании» (по часовой стрелке) ближайший пиксель с цветом С1, обесцвечивает его, перемещается на него и повторяет «оглядывание» от только что покинутого пикселя. Такие перемещения будут происходить до тех пор, пока «Анализатор», начиная «оглядывание» от только что покинутого пикселя (он уже обесцвечен), найдёт рядом только обесцвеченные пиксели. На этом закончится операция «Сложение».

Результат операции показан на рисунке 3-2.

Рис. 3-2 Результат операции «Сложение»

Вычитание

Для курсора выбирается позиция внутри зоны пересечения БФ, например, в точке «А» (выбор чисто визуальный). Если зона отсутствует, то и задача объединения «снимается с повестки дня». Запускается подпрограмма «Вычитание» (см. рисунок 3-1).

Первая процедура подпрограммы (выход на точку контура) заставляет «Анализатор» двигаться слева направо (по оси х) и проверять по дороге цвет пикселей, оказавшихся на его пути. Движение происходит до тех пор, пока на пути «Анализатора» окажется пиксель, имеющий цвет С1. После этого найденный пиксель обесцвечивается. «Анализатор» продвигается ещё на один пиксель и возвращается. Программа «оглядывает» пространство против часовой стрелки (!) вокруг занимаемого «Анализатором» (обесцвеченного) пикселя. «Оглядывание начинается от пикселя, только что покинутого «Анализатором». «Анализатор» находит при этом «оглядывании» (против часовой стрелки) ближайший пиксель с цветом С1, обесцвечивает его, перемещается на него и повторяет «оглядывание» от только что покинутого пикселя. Такие перемещения будут происходить до тех пор, пока «Анализатор», начиная «оглядывание» от только что покинутого пикселя (он уже обесцвечен), найдёт рядом только обесцвеченные пиксели. На этом закончится операция «Вычитание».

Результат операции показан на рисунке 3-3.

Рис. 3-3 Результат операции «Вычитание»

Пересечение

Для курсора выбирается позиция внутри зоны пересечения БФ, например, в точке «А» (выбор чисто визуальный). Если зона отсутствует, то и задача объединения «снимается с повестки дня». Запускается подпрограмма «Пересечение» (см. рисунок 3-1).

Первая процедура подпрограммы (выход на точку контура) заставляет «Анализатор» двигаться слева направо (по оси х) и проверять по дороге цвет пикселей, оказавшихся на его пути. Движение происходит до тех пор, пока на пути «Анализатора» окажется пиксель, имеющий цвет С1. После этого найденный пиксель окрашивается в цвет С2. «Анализатор» занимает его место. Программа «оглядывает» пространство по часовой стрелке (!) вокруг занимаемого «Анализатором» (окрашенного в С2) пикселя. «Оглядывание начинается от пикселя, только что покинутого «Анализатором». «Анализ


Просмотров: 2729

Комментарии к статье:


Ваще сообщение:
 

 

Добавить комментарий

[B] [I] [u] [S] [2] [2]       [TAB] [∑] [∓] [≈] [≠] [≤] [≥] [π] [×] [√]       [RED] [GRE] [BLU]

[α] [β] [Γ] [γ] [Σ] [σ] [Δ] [δ] [Ω] [ω] [μ] [Λ] [λ]