Библиотека на Си для булевских операций над полигонами
-
- Интересующийся
- Сообщения: 37
- Зарегистрирован: 24 июл 2009, 14:47
- Репутация: 0
Библиотека на Си для булевских операций над полигонами
Може кто-то из спецов может подсказать библиотеку для работы с полигонами? Пересечение/объедениненеие/вычитание
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Библиотека на Си для булевских операций над полигонами
Посмотрите здесь (раздел Librería).
Но что то на ум ничего для plain c не приходит.
Но что то на ум ничего для plain c не приходит.
лангольеры под окном жрали время ом-ном-ном
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Библиотека на Си для булевских операций над полигонами
посмотрите вот здесь: http://trac.osgeo.org/ggl/ очень быстрая библиотека, но не уверен что в ней есть нужные функции, это тоже C++
пристегивайтесь, турбулентность прямо по курсу
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Библиотека на Си для булевских операций над полигонами
http://www.complex-a5.ru/polyboolean/comp.html
По адресу приведено сравнение основных библиотек С++ по работе с полигонами.
Есть еще geos, но, например, на операции Intersection очень тормозит.
По адресу приведено сравнение основных библиотек С++ по работе с полигонами.
Есть еще geos, но, например, на операции Intersection очень тормозит.
-
- Интересующийся
- Сообщения: 37
- Зарегистрирован: 24 июл 2009, 14:47
- Репутация: 0
Re: Библиотека на Си для булевских операций над полигонами
Всем спасибо. Вопрос решен.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Библиотека на Си для булевских операций над полигонами
Чисто для повышения собственной образованности - на чем остановились?
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 37
- Зарегистрирован: 24 июл 2009, 14:47
- Репутация: 0
Re: Библиотека на Си для булевских операций над полигонами
Остановился на gpc (Generic Polygon Clipper)
Могут профессионалы подтвердить мои опасения или опровергнуть? А то что-то никак сам не могу сообразить прав я или нет. Пока я исхожу из того, что на плоскости наименьшее расстояние между гео-точками будет выглядеть в виде дуги, а не прямой. А gpc (да и все аналогичные библиотеки) считают, что наименьшее расстояние можно представить в виде прямой.
Хотя, учитывая что мне нужно работать с полигонами, заданными гео-координатами - есть мнение, что нужна какая-нибудь библиотека для работы с полигонами на сфере, а не на плоскости, так как при использовании будут неверные результаты.// General Polygon Clipper based on the GPC library by Alan Murta
// Union, Intersection, XOR, A-B, B-A
// Contact the author if you intend to use it in commercial applications!
// http://www.cs.man.ac.uk/aig/staff/alan/software/
// Alan Murta (email: gpc@cs.man.ac.uk)
Могут профессионалы подтвердить мои опасения или опровергнуть? А то что-то никак сам не могу сообразить прав я или нет. Пока я исхожу из того, что на плоскости наименьшее расстояние между гео-точками будет выглядеть в виде дуги, а не прямой. А gpc (да и все аналогичные библиотеки) считают, что наименьшее расстояние можно представить в виде прямой.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Библиотека на Си для булевских операций над полигонами
Я думаю это везде так, даже в коммерческих ГИС.
-
- Интересующийся
- Сообщения: 37
- Зарегистрирован: 24 июл 2009, 14:47
- Репутация: 0
Re: Библиотека на Си для булевских операций над полигонами
Это потому чтоэто везде так
а) Проще реализовать?
б) эти библиотеки дают точный результат, а все мои сомнения ошибочны?
в) другое
P.S. Нашел (точнее вспомнил то, что находил при прошлом поиске) библиотеку
2D Boolean Operations on Nef Polygons Embedded on the Sphere.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Библиотека на Си для булевских операций над полигонами
Я думаю все вместе. Кроме того, сфера это хорошо, а если эллипсоид или иная фигура вращения - опять другая математика?
Я обрезал слой континентов кажется по 12 градусной зоне - все прилично получается. Главное чтобы обрезающая фигура имела точек побольше 4-х. На картинке есть пример обрезки континентов viewtopic.php?f=27&t=4906#p23768
Я обрезал слой континентов кажется по 12 градусной зоне - все прилично получается. Главное чтобы обрезающая фигура имела точек побольше 4-х. На картинке есть пример обрезки континентов viewtopic.php?f=27&t=4906#p23768
-
- Интересующийся
- Сообщения: 37
- Зарегистрирован: 24 июл 2009, 14:47
- Репутация: 0
Re: Библиотека на Си для булевских операций над полигонами
Сфера и эллипс - весьма похожи и конвертировать из одного в другой не так сложно. Хотя, всех тонкостей ГИС я не знаю, так что тут мне сложно что-то сказать. Мало ли что там ещё кроме элипса и окружности может использоваться.
В моем случае используется сфера, так что попробую сам придумать алгоритм с полигонами на сфере, либо разобраться с найденным. Скорость выполнения операций у меня не сильно принципиальна, так что может что и получится самому наваять. Точность гораздо важнее, так как при перемещении камеры с высоты в 6 тыс. км до высоты 1 метра даже при небольшом косяке в расчетах могут получиться не стыковки соседних тайлов и как следствие - ненужные мне дырки в карте. И так пришлось исхитриться, чтобы компенсировать ошибки округления при выполнении мат.операций.
В общем - спасибо за подсказки, буду обдумывать услышанное.
В моем случае используется сфера, так что попробую сам придумать алгоритм с полигонами на сфере, либо разобраться с найденным. Скорость выполнения операций у меня не сильно принципиальна, так что может что и получится самому наваять. Точность гораздо важнее, так как при перемещении камеры с высоты в 6 тыс. км до высоты 1 метра даже при небольшом косяке в расчетах могут получиться не стыковки соседних тайлов и как следствие - ненужные мне дырки в карте. И так пришлось исхитриться, чтобы компенсировать ошибки округления при выполнении мат.операций.
В общем - спасибо за подсказки, буду обдумывать услышанное.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Библиотека на Си для булевских операций над полигонами
Тайлы есть суть квадрат (ну или прямоугольник) - какие там могут быть нестыковки, если только на полюсе?
По поводу сферы и эллипсоида - длина дуги на эллипсоиде будет отличаться от аналогичной на сфере аз счет радиусов большой и малой полуоси. Я думаю там чуть сложнее математика чем на сфере.
По поводу сферы и эллипсоида - длина дуги на эллипсоиде будет отличаться от аналогичной на сфере аз счет радиусов большой и малой полуоси. Я думаю там чуть сложнее математика чем на сфере.
-
- Интересующийся
- Сообщения: 37
- Зарегистрирован: 24 июл 2009, 14:47
- Репутация: 0
Re: Библиотека на Си для булевских операций над полигонами
У меня тайл в виде треугольника, поэтому всё не так просто.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Библиотека на Си для булевских операций над полигонами
Этого не может быть т.к. пикселы квадратные!!! А то что у Вас часть пикселов помечены как nodata еще ничего не значит.
-
- Интересующийся
- Сообщения: 37
- Зарегистрирован: 24 июл 2009, 14:47
- Репутация: 0
Re: Библиотека на Си для булевских операций над полигонами
Может.
Моя карта, как хочу, так и делаю.
Про "nodata" я вообще первый раз слышу. Вообще же в 3D всё выводится треугольниками. Просто текстуру буду натягивать на треугольник.

Про "nodata" я вообще первый раз слышу. Вообще же в 3D всё выводится треугольниками. Просто текстуру буду натягивать на треугольник.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя