Название: Пространственная обработка (полигоны, линии, точки...) Отправлено: phpCoder от Август 10, 2015, 14:25 Добрый день.
Есть ли на Qt (или на C++) библиотеки для пространственной обработки объектов (полигоны, линии, точки...) - пересечение, разность, объединение и прочее. Т.е. те инструменты, которые имеют ГИС системы? Может быть это умеет делать и сам Qt из коробки... Очень нужно, спасибо. Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: Igors от Август 10, 2015, 14:39 Есть ли на Qt (или на C++) библиотеки для пространственной обработки объектов (полигоны, линии, точки...) - пересечение, разность, объединение и прочее. Т.е. те инструменты, которые имеют ГИС системы? Может быть это умеет делать и сам Qt из коробки... Ну губу раскатали, уж и "из коробки" :) Для начала 3D объекты надо иметь - и это не так уж просто. "пересечение, разность, объединение" называется "3D boolean", для этого есть неск неплохих open sources, но с ними надо заниматься. О каких-то популярных, стандартных (очевидных) решениях мне ничего не известно. Не исключено что в "ГИС системах" используются платные решения которых тоже немало. В общем, проскочить на шару пых-пых товарищу вряд ли удастся :) Конкретизируйте задачу Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: phpCoder от Август 10, 2015, 14:42 Знаете ли Вы (и другие читающие эту тему) библиотеки для обработки пространственных данных? Вопрос предельно простой.
Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: Igors от Август 10, 2015, 15:07 Знаете ли Вы (и другие читающие эту тему) библиотеки для обработки пространственных данных? Вопрос предельно простой. Это Вы считаете его простым :) Умолкаю, пусть пых-пых резвость перекипит, а там посмотримНазвание: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: phpCoder от Август 10, 2015, 15:09 Если библиотек не знаете - не пишите.
А ответ простой: да, знаю, например эта, эта и эта. Или - нет не знаю. Все. Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: Hrundel от Август 10, 2015, 20:43 Знаете ли Вы (и другие читающие эту тему) библиотеки для обработки пространственных данных? Вопрос предельно простой. Это Вы считаете его простым :) Умолкаю, пусть пых-пых резвость перекипит, а там посмотримДаже Игоря пробило! :) Если библиотек не знаете - не пишите. А ответ простой: да, знаю, например эта, эта и эта. Или - нет не знаю. Все. Умерте пыл. Библиотек таких на халяву не было и нет. Могу вам посоветовать только три гениальные книги для решения подобных задач. Боресков. А.В. Графика трехмерной компьютерной игры на OpenGL Майкл Лассо. Вычислительная геометрия и компьютерная графика на C++ Павлидис Т. - Алгоритмы машинной графики и обработки изображений еще не повредит Поляков, Брусенцев - Методы и алгоритмы компьютерной графики в примерах на Visual C++ Никулин Е.А. - Компьютерная геометрия и алгоритмы машинной графики - Математика 3Д графики Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: phpCoder от Август 10, 2015, 22:54 GEOS
За книги спасибо. Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: Igors от Август 11, 2015, 06:02 Все бы нормально если "на плоскости", т.е. полигон 2D - просто замкнутый контур. Тогда есть прекрасный boost::polygons и в CGAL есть. Но человек говорит "пространственная" - наверное имеет ввиду 3D. Так мрачно, ну пользовал я Cork, но там возни..
Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: Naihil от Август 11, 2015, 09:41 В Qt есть классы для работы с полигонами - QPolygon(F), простейшие пересечения они обрабатывают.
Для полноценной обработки пространственных данных можно использовать уже упоминавшийся GEOS либо подключить библиотеки QGIS, которые по сути тоже используют GEOS. Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: phpCoder от Август 11, 2015, 10:06 Геометрия на плоскости конечно. В ГИС называется пространственными вычислениями.
В общем задача стандартная. Если два массива полигонов. Они могут быть как выпуклыми, так и невыпуклыми. Требуется первым массивом полигонов порезать второй массив полигонов. На выходе получить массив порезанных полигонов. (стандартная задача из ГИСа) Смотрю буст сейчас - кто знает, помогите, какие методы нужно использовать для этого? Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: Hrundel от Август 11, 2015, 20:54 Тоже я смотрел этот GEOS. В него пока вработаешься столько же времени пройдет сколько сам писать будешь.
Название: Re: Пространственная обработка (полигоны, линии, точки...) Отправлено: Hrundel от Август 11, 2015, 20:59 Если два массива полигонов. Они могут быть как выпуклыми, так и невыпуклыми. Правильно говорить конкавными и конвексными. |