На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Граница зоны видимости

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 След.
RSS
Граница зоны видимости
 
Здравствуйте!

Есть функция построения зоны видимости в виде растра (mapVisibilityZone).
А есть ли инструмент для получения границы зоны видимости в каком-либо виде?
 
Цитата
Дмитрий Т написал:
Здравствуйте!

Есть функция построения зоны видимости в виде растра (mapVisibilityZone).
А есть ли инструмент для получения границы зоны видимости в каком-либо виде?
Уточните, пожалуйста, что имеется в виду под ГРАНИЦЕЙ ЗОНЫ ВИДИМОСТИ.
Во вложении DOC файл с изображением.
По почте выслали изображение.
 
Линия отделяющая видимую и невидимую область.
 
Может быть есть возможность получить зону видимости как объект карты (HOBJ)?
 
Функция mapVisibilityZone строит растровое изображение, то есть "Растр зоны видимости".
Зона видимости строится в виде растра, в котором невидимые области имеют заданный пользователем цвет.
Невидимая  (или видимая) область - это совокупность пикселей растра. Невидимая (или видимая) область может состоять из большого количества
рядом расположенных пикселей, а может представлять собой совсем небольшие фрагменты - из нескольких пикселей
или даже из одного. Поэтому "Линий, отделяющих видимую и невидимую область" - может быть много.
Изменено: Александр Горбунов - 22.05.2019 17:35:29
 
Может быть много... Но мне необходимо получить не саму зону, а ее границу или контур.
 
Цитата

// Преобразование растра в вектор
// hmap       - основная карта
// hsit       - векторная карта в которую пишутся объекты
// rstnum     - номер исходного растра, добавленного к карте
// isfilter   - признак фильтрации точек, лежащих на одной прямой (0..1)
// hselect    - содержит созданные объекты (если = 0, то не заполняется)
// classes    - распознаваемые классы
// classcount - количество классов
// border     - объект, ограничивающий область преобразования растра в вектор
// iscuthole  - признак вырезания подобъектов
//              если = 0, то внутренний объект всегда имеет больший номер (Key), чем внешний
// handle     - идентификатор окна диалога, которому посылается сообщение 0x0581
//              в wParam - процент выполненной обработки
//              в lParam - адрес строки с названием выполняемого этапа
//              Если процесс должен быть принудительно завершен, в ответ
//              должно вернуться значение 0x0581.
// fcallback  - функция обратного вызова для сообщения статуса выполнения (процентов),
//              это функция типа EVENTCALL (см. описание в maptype.h), первым параметром
//              в нее будет возвращено значение eventparam, вторым - код сообщения
//              (0x0581),
//              в третьем параметре  - процент выполненной обработки
//              в четвертом параметре - адрес строки с названием выполняемого этапа
//              Если процесс должен быть принудительно завершен, в ответ
//              должно вернуться значение 0x0581.
// eventparam - параметр, передаваемый в функцию обратного вызова для идентификации
//              отклика на вызывающей стороне.
// Если handle (или fcallback) равно нулю - сообщения не посылаются.
// Текст передается в кодировке Unicode (UTF16).
// В случае ошибки возвращает 0.
long int MTREXPORT mtrRstToVector(HMAP hmap, HSITE hsit, long int rstnum, long int isfilter,
                                 HSELECT hselect, MTRCLASS *classes, long int classcount, HOBJ border,
                                 long int iscuthole, HMESSAGE handle);

long int MTREXPORT mtrRstToVectorCallBack(HMAP hmap, HSITE hsit, long int rstnum, long int isfilter,      
                                 HSELECT hselect, MTRCLASS *classes, long int classcount, HOBJ border,
                                 long int iscuthole, EVENTCALL fcallback, void *eventparam);
 
Благодарю за помощь!

Воспользовался преобразованием растра в вектор. Получил следующий результат. Темный слева исходный растр. Оранжевый построенный вектор.  



 

Вопрос как установить в структуре MTRCLASS Min Max, а также поле ColorRst в TBUILDZONEVISIBILITY, чтобы получить вектор области видимости без "кольца"? Цвет растра не принципиален.
 
Подскажите, пожалуйста, в каких пределах Min и Max (double) в MTRCLASS для конвертации растра.  0-255?
И как рассчитывается яркость (R+G+B)/3 или 0.2126*R+0.7152*G+0.0722*B?

В описании MTRCLASS
"для RGB растра         - яркость - среднее по R,G,B"
 
Min Max для черного(ColorRst=0) растра я подобрал как 0.5 и 3.
Очень интересен физический смысл величин..
0.5-3_rstcolor0.png (467.73 КБ)
Страницы: 1 2 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности