Estou procurando uma biblioteca boa e bem desenvolvida para manipulações e avaliações geométricas em python, como:
- avaliar a interseção entre duas linhas em 2D e 3D (se houver)
- avaliar o ponto de intersecção entre um plano e uma linha, ou a linha de intersecção entre dois planos
- avaliar a distância mínima entre uma linha e um ponto
- encontre o ortonormal para um plano que passa por um ponto
- girar, traduzir, espelhar um conjunto de pontos
- encontre o ângulo diedro definido por quatro pontos
Tenho um livro de compêndio para todas essas operações e poderia implementá-lo, mas infelizmente não tenho tempo, então gostaria de uma biblioteca que o faça. A maioria das operações é útil para fins de jogos, então tenho certeza de que algumas dessas funcionalidades podem ser encontradas em bibliotecas de jogos, mas prefiro não incluir funcionalidades (como gráficos) de que não preciso.
Alguma sugestão ? obrigado
Respostas:
Talvez dê uma olhada no SymPy .
fonte
Shapely é um ótimo wrapper python em torno da popular biblioteca GEOS .
fonte
Eu descobri que o pyeuclídeo é um ótimo pacote de matemática euclidiana de propósito geral. Embora a biblioteca possa não conter exatamente os problemas que você mencionou, sua infraestrutura é boa o suficiente para tornar mais fácil escrevê-los por conta própria.
fonte
CGAL também tem vínculos Python .
fonte
geometry-simple tem classes Point Line Plane Movement em ~ 300 linhas, usando apenas numpy; dê uma olhada.
fonte
Eu realmente quero uma boa resposta para essa pergunta, e as perguntas acima me deixaram insatisfeito. No entanto, acabei de encontrar o pythonocc que parece ótimo, além de não ter bons documentos e ainda ter alguns problemas com a instalação (ainda não é compatível com pypi). A última atualização foi há 4 dias (19 de junho de 2011). Ele envolve o OpenCascade, que tem uma tonelada de geometria e funcionalidade de modelagem. No site pythonocc:
[EDITAR: Agora baixei o pythonocc e comecei a trabalhar com alguns dos exemplos]
Eu acredito que ele pode realizar todas as tarefas mencionadas, mas achei seu uso não intuitivo. Ele é criado quase inteiramente a partir de wrappers SWIG e, como resultado, a introspecção dos comandos se torna difícil.
fonte
Você pode estar interessado no módulo Python SpaceFuncs do projeto OpenOpt, http://openopt.org
SpaceFuncs é uma ferramenta para modelagem geométrica 2D, 3D, N-dimensional com possibilidades de cálculos parametrizados, otimização numérica e solução de sistemas de equações geométricas
fonte
Python Wild Magic é outro código SWIG empacotado. No entanto, é uma biblioteca de jogos, mas você pode manipular o arquivo de biblioteca SWIG para excluir qualquer material gráfico indesejado da API Python.
fonte