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

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

Дайет совет!! [D6]


Страницы:   1 2

Frozzen ©   (2004-11-17 08:12:00) 

Господа
ситуация такая: построил изолинии, сейчас необходимо раскрасить облости между ними. Я думаю нужно получить полигоны, а затем их раскрашивать. Дак вот, не могу придумать алгоритм построения полигонов по имеющимся линиям.
Подскажите чего-нибуть!


Frozzen   (2004-11-17 09:20:00) [21]

точки то есть
а че с ними делать не ясно
вот например берем начало изолинии (на горе картинке верхняя точка между регионами 1 и 2) начинаем обход по границе карты в лево. Потом вниз. Встречаем регион 4 огибаем его по изолинии и т.д. пока не вернемся в начальную точку.
Затем берем начальную точку линии между регионами 4 и 1. И куда начинать обход по изолинии, тогда можно уйти дальше и незамкнуть 4.


Дмитрий В. Белькевич   (2004-11-17 09:16:00) [22]

Ощи алгоритмы оконтуривания (contouring). В инете их есть. По градиентам всё достаточно просто ищется.


Frozzen   (2004-11-17 09:12:00) [23]

картинка не получилась


Frozzen   (2004-11-17 09:11:00) [24]

-------------------------------
1      |  2          |
        |            |
---+       |            |  5
   |        |   +--+    |
4  |        |   | 3 |    |
----+        |   +---+    |
              |          |
               |          |  
                |           |
--------------------------------
вот примерная картинка, нужно выделить регионы 1,2,3,4,5


Гаврила   (2004-11-17 09:09:00) [25]

У тебя же уже есть точки, по которым построены изолинии


Frozzen   (2004-11-17 09:05:00) [26]

дык вот
загвоздка в алгоритме получения точек для создания региона


Frozzen   (2004-11-17 09:04:00) [27]

предпологается использование векторного движка, а не канваса
но сейчас это все на канвасе


Гаврила   (2004-11-17 09:03:00) [28]

Создать регион(а не полигон), потом его залить.
создание региона по массиву точек выполняется одной функцией, заливка второй функцией
Подробности в MSDN


Frozzen   (2004-11-17 09:03:00) [29]

необходимо выделить полигоны
а затем их закрасить


Frozzen   (2004-11-17 09:00:00) [30]

Нужно раскрасить площадно карту(как в прогнозе погоды)
Дано: Точки с определенным значение на карте(показатели мееостанций)

Я накладываю на карту регулярную сетку
получаю значение в каждом узле сетки интерполяцией заданнных точек(метео станций)
по этой сетке строю изолинии(изолиния - списк точек)
теперь стает задача раскраски пространства между изолиниями


Frozzen   (2004-11-17 08:56:00) [31]

в обще опишу задачу полностью


Frozzen   (2004-11-17 08:56:00) [32]

изолиния - это список точек с координатами


kostan   (2004-11-17 08:52:00) [33]

не совсем понятно как выглядят полигоны ("открытые" что то типа pipe или "закрытые" типа многоугольника)

если не требуется быстрота сканирую всю область (через canvas)
на предмет наличия цвета(ов) изолинии
сначала сверху-вниз  
если надо то и  слева-направо
(заполняй условия )  и по условиям запускай процедуру закраски


Unknown   (2004-11-17 08:52:00) [34]

Что-что ты сделал, не могу врубить?
Может тебе нужен FloodFill


Frozzen   (2004-11-17 08:21:00) [35]

описался в названии темы
сори


Страницы:   1 2

Наверх

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