Хорошая библиотека геометрии в Python? [закрыто]

Я ищу хорошую и хорошо разработанную библиотеку для геометрических манипуляций и оценок в Python, например:

evaluate the intersection between two lines in 2D and 3D (if present) evaluate the point of intersection between a plane and a line, or the line of intersection between two planes evaluate the minimum distance between a line and a point find the orthonormal to a plane passing through a point rotate, translate, mirror a set of points find the dihedral angle defined by four points

У меня есть сборник по всем этим операциям, и я мог бы его реализовать, но, к сожалению, у меня нет времени, поэтому мне понравилась бы библиотека, которая это делает. Большинство операций полезно для игровых целей, поэтому я уверен, что некоторые из этих функциональных возможностей можно найти в игровых библиотеках, но я бы предпочел не включать функциональные возможности (такие как графика), которые мне не нужны.

Какие-либо предложения ? Спасибо

 Pithikos09 мар. 2015 г., 12:56
Если вы в порядке только с 2D, то вы можете проверитьthis.

Ответы на вопрос(8)

Решение Вопроса
 24 янв. 2013 г., 05:18
2d только грустно. Не совсем конструктивный двигатель геометрии.
 11 окт. 2016 г., 18:57
Спасибо за этот ответ. Я сейчас пробую SymPy. Первый эксперимент казался довольно медленным - даже для простого 2D-объекта. Любая идея, если это хорошо для обработки геометрии в режиме реального времени? Благодарю.
 09 июн. 2016 г., 19:12
Обновить доSymPy теперь также содержит 3D-библиотеки
 12 нояб. 2015 г., 23:39
Модуль геометрии SymPy также может быть очень, очень медленным. Поскольку он предназначен для выполнения символьной математики, он предпочитает использовать точные выражения над приблизительными значениями с плавающей запятой. Учитывая количество квадратных корней, которые обычно участвуют в геометрических вычислениях, вы можете представить, как эти выражения становятся действительно большими и очень медленными.
 Stefano Borini15 июл. 2009 г., 00:02
Он не совсем соответствует моим требованиям, но это действительно крутой проект, поэтому я принимаю ваш ответ как интересное предложение и на будущее (поскольку у SymPy есть модуль геометрии и огромное количество разработчиков)

Python Wild Magic это еще один SWIG-код Это, однако, игровая библиотека, но вы можете манипулировать файлом библиотеки SWIG, чтобы исключить любые нежелательные графические элементы из Python API.

стройный хорошая обертка питона вокруг популярногоGEOS библиотека.

 06 апр. 2016 г., 19:40
Почему только одно понижение, когда вопрос специально задает 3D?
 17 февр. 2012 г., 23:46
что он говорит о трехмерной геометрии: «Третье значение координаты z может использоваться при построении экземпляров, но не влияет на геометрический анализ. Все операции выполняются в плоскости x-y. & Quot;
 14 сент. 2009 г., 22:47
Он, безусловно, был создан для использования сообществом ГИС, однако он намеренно не знает географических проекций, что делает его пригодным для использования в качестве евклидовой библиотеки геометрии общего назначения. Я активно использую его как таковой в зарождающемся проекте компьютерной игры, и он отлично работает.
 24 янв. 2013 г., 05:18
Приведенный выше комментарий занял у меня около получаса кода, чтобы выяснить это. Действительно волнующий.
 Stefano Borini03 июл. 2009 г., 02:16
Кажется, что он очень сосредоточен на обработке данных ГИС, а не на чистой «математической геометрии» (так сказать)

Геометрия-простой имеет классы Point Line Plane Movement в ~ 300 линий, используя только numpy; взглянуть.

pyeuclid быть большой простой евклидовой математикой общего назначения. Хотя библиотека может не содержать в точности проблем, о которых вы упоминали, ее инфраструктура достаточно хороша, чтобы ее было легко написать самостоятельно.

и те, что выше, оставили меня недовольным. Впрочем, я только что натолкнулсяpythonocc который выглядит великолепно, за исключением отсутствия хороших документов и проблем с установкой (пока не совместимых с pypi). Последнее обновление было сделано 4 дня назад (19 июня 2011 г.). ОборачиваетOpenCascade который имеет тонну геометрии и функциональности моделирования. С сайта pythonocc:

pythonOCC is a 3D CAD/CAE/PLM development framework for the Python programming language. It provides features such as advanced topological and geometrical operations, data exchange (STEP, IGES, STL import/export), 2D and 3D meshing, rigid body simulation, parametric modeling.

[EDIT: я сейчас скачал pythonocc и начал работать с некоторыми примерами]

Я считаю, что он может выполнять все упомянутые задачи, но я нашел, что это не интуитивно понятно. Он создается почти полностью из SWIG-обёрток, и в результате самоанализ команд становится трудным.

 29 янв. 2013 г., 15:54
этот проект появился на свет?
 26 июн. 2011 г., 20:23
@ Стефано Борини: конечно! Я был бы рад помочь, как только смогу, но я не достиг вашего уровня квалификации.
 Stefano Borini23 июн. 2011 г., 17:53
На мой взгляд, это слишком много ... мы должны начать? Мне скоро понадобится много геометрических операций в моем raytracer, и, вероятно, имеет смысл создать для него отдельный github. У меня уже есть некоторый код, мы не можем & apos; начать с нуля, но его будет легко перепроектировать, если мы обнаружим, что он недостаточно хорош.
 29 янв. 2013 г., 19:42
@Mermoz да, но очень медленно. Стефано уже положил начало библиотеке, и я писал свои собственные дополнения, но мы не зашли слишком далеко. увидетьgithub.com/stefanoborini/python-geometry а такжеgithub.com/bengolder/python-geometry
 01 сент. 2011 г., 03:09
Я так же разочарован тем, что доступно. Для простых вещей я сделал свой собственный код (например, вAdolphus), но сегодня вечером, например, мне нужно пересечение многогранник-многогранник, и это слишком много шагов от того, что я должен быть в здравом уме. В любом случае, если это пойдет вперед, подсчитайте меня.

http://openopt.org

SpaceFuncs - инструмент для 2D, 3D, N-мерного геометрического моделирования с возможностями параметризованных вычислений, численной оптимизации и решения систем геометрических уравнений

CGAL имеетПривязки Python тоже.

 16 сент. 2011 г., 20:13
Я должен признать: я не знаю.
 23 июн. 2011 г., 11:04
Последний выпуск был 2009, и они, кажется, неполные. Может ли кто-нибудь сказать, что они недавно использовали их и что они могут выполнять задания, заданные в вопросе, используя привязки?
 13 нояб. 2012 г., 23:36
Да, все привязки, которые я обнаружил, являются неполными, включая некоторые из реальных полезностей, таких как конструктивная сплошная геометрия. Кроме того, высокотемпературная природа CGAL затрудняет хорошее завертывание. В моем собственном проекте (Demakein), Я использую модуль cffi и несколько ужасных хаков, чтобы использовать CGAL напрямую из python, используя встроенные фрагменты C ++.

Ваш ответ на вопрос