Russian Qt Forum
Ноябрь 24, 2024, 08:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пространственная обработка (полигоны, линии, точки...)  (Прочитано 26084 раз)
phpCoder
Гость
« : Август 10, 2015, 14:25 »

Добрый день.
Есть ли на Qt (или на C++) библиотеки для пространственной обработки объектов (полигоны, линии, точки...) - пересечение, разность, объединение и прочее. Т.е. те инструменты, которые имеют ГИС системы? Может быть это умеет делать и сам Qt из коробки...

Очень нужно, спасибо.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Август 10, 2015, 14:39 »

Есть ли на Qt (или на C++) библиотеки для пространственной обработки объектов (полигоны, линии, точки...) - пересечение, разность, объединение и прочее. Т.е. те инструменты, которые имеют ГИС системы? Может быть это умеет делать и сам Qt из коробки...
Ну губу раскатали, уж и "из коробки"  Улыбающийся Для начала 3D объекты надо иметь - и это не так уж просто. "пересечение, разность, объединение" называется "3D boolean", для  этого есть неск неплохих open sources, но с ними надо заниматься. О каких-то популярных, стандартных (очевидных) решениях мне ничего не известно. Не исключено что в "ГИС системах" используются платные решения которых тоже немало.

В общем, проскочить на шару пых-пых товарищу вряд ли удастся  Улыбающийся Конкретизируйте задачу
Записан
phpCoder
Гость
« Ответ #2 : Август 10, 2015, 14:42 »

Знаете ли Вы (и другие читающие эту тему) библиотеки для обработки пространственных данных? Вопрос предельно простой.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Август 10, 2015, 15:07 »

Знаете ли Вы (и другие читающие эту тему) библиотеки для обработки пространственных данных? Вопрос предельно простой.
Это Вы считаете его простым Улыбающийся Умолкаю, пусть пых-пых резвость перекипит, а там посмотрим
Записан
phpCoder
Гость
« Ответ #4 : Август 10, 2015, 15:09 »

Если библиотек не знаете - не пишите.
А ответ простой: да, знаю, например эта, эта и эта.
Или - нет не знаю.
Все.
Записан
Hrundel
Гость
« Ответ #5 : Август 10, 2015, 20:43 »

Знаете ли Вы (и другие читающие эту тему) библиотеки для обработки пространственных данных? Вопрос предельно простой.
Это Вы считаете его простым Улыбающийся Умолкаю, пусть пых-пых резвость перекипит, а там посмотрим

Даже Игоря пробило!  Улыбающийся  


Если библиотек не знаете - не пишите.
А ответ простой: да, знаю, например эта, эта и эта.
Или - нет не знаю.
Все.

Умерте пыл. Библиотек таких на халяву не было и нет.
Могу вам посоветовать только три гениальные книги для решения подобных задач.

Боресков. А.В. Графика трехмерной компьютерной игры на OpenGL
Майкл Лассо. Вычислительная геометрия и компьютерная графика на C++
Павлидис Т. -  Алгоритмы машинной графики и обработки изображений

еще не повредит

Поляков, Брусенцев - Методы и алгоритмы компьютерной графики в примерах на Visual C++
Никулин Е.А. - Компьютерная геометрия и алгоритмы машинной графики - Математика 3Д графики

« Последнее редактирование: Август 10, 2015, 20:46 от Hrundel » Записан
phpCoder
Гость
« Ответ #6 : Август 10, 2015, 22:54 »

GEOS

За книги спасибо.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Август 11, 2015, 06:02 »

Все бы нормально если "на плоскости", т.е. полигон 2D - просто замкнутый контур. Тогда есть прекрасный boost::polygons и в CGAL есть. Но человек говорит "пространственная" - наверное имеет ввиду 3D. Так мрачно, ну пользовал я Cork, но там возни..
Записан
Naihil
Новичок

Offline Offline

Сообщений: 23


Просмотр профиля
« Ответ #8 : Август 11, 2015, 09:41 »

В Qt есть классы для работы с полигонами - QPolygon(F), простейшие пересечения они обрабатывают.

Для полноценной обработки пространственных данных можно использовать уже упоминавшийся GEOS либо подключить библиотеки QGIS, которые по сути тоже используют GEOS.
Записан
phpCoder
Гость
« Ответ #9 : Август 11, 2015, 10:06 »

Геометрия на плоскости конечно. В ГИС называется пространственными вычислениями.

В общем задача стандартная. Если два массива полигонов. Они могут быть как выпуклыми, так и невыпуклыми. Требуется первым массивом полигонов порезать второй массив полигонов. На выходе получить массив порезанных полигонов. (стандартная задача из ГИСа)

Смотрю буст сейчас - кто знает, помогите, какие методы нужно использовать для этого?
Записан
Hrundel
Гость
« Ответ #10 : Август 11, 2015, 20:54 »

Тоже я смотрел этот GEOS. В него пока вработаешься столько же времени пройдет сколько сам писать будешь.
Записан
Hrundel
Гость
« Ответ #11 : Август 11, 2015, 20:59 »

Если два массива полигонов. Они могут быть как выпуклыми, так и невыпуклыми.

Правильно говорить конкавными и конвексными.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.156 секунд. Запросов: 23.