![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дайет совет!! [D6]
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]описался в названии темы
сори