Подтвердить что ты не робот

3d Math Library для Python

Я ищу 3d математическую библиотеку в python или с привязками python.

ему нужно обрабатывать вращение, перевод, перспективную проекцию, все в принципе.

то, что им НЕ Ищет, - это библиотека, предназначенная для рисования на экране, работа в Интернете в течение нескольких часов только приводила к тому, что 3d-библиотеки склонялись к тому, чтобы что-то отображать на экране. я не хочу никакой визуализации вообще, все, что мне нужно, - это возможность кормить библиотеку x, y, z координат и получать координаты экрана x, y.

Я не возражаю, если это библиотека визуализации, если она может быть использована без визуализации чего-либо на экран.

есть ли что-нибудь подобное для python?

Изменить: пожалуйста, не рекомендуем scipy/numpy, поскольку они arent нацелены на математику 3d, но по математике в целом, они выглядят как отличные инструменты, если я хотел сам построить библиотеку, что я не делаю. Благодарю.

4b9b3361

Ответ 1

Попробуйте gameobjects - это математическая библиотека, которая включает классы Python для матриц и векторов, а также методы для преобразований. Я думаю, что он предоставит большинство (если не все) того, что вам нужно, плюс чистый Python, чтобы вы могли его изменить, если вам нужно.

Ответ 2

OpenCV - интерфейс Python может обрабатывать все описанные вами операции.

Я слышал, что SciPy отлично подходит для этого, но я использовал только OpenCV.

Ответ 3

transformations.py

Библиотека для расчета матриц 4x4 для перевода, поворота, отражения, масштабирования, сдвига, проектирования, ортогонализации и наложения массивов Трехмерных однородных координат, а также для преобразования между матрицами вращения, Углы Эйлера и кватернионы. Также включает объект управления Arcball и функции для разложения матриц преобразования.

Авторы: Кристоф Гольке http://www.lfd.uci.edu/~gohlke/Лаборатория флуоресцентной динамики, Калифорнийский университет, Ирвин

Ответ 5

python-math3d - еще одна хорошая математическая 3D-библиотека, которая является объектно-ориентированной https://github.com/mortlind/pymath3d

import math3d as m3d

v = m3d.Vector(1,2,3) # Векторный объект

o = m3d.Orientation.new_euler ((1,0,0), "ZYX" ) # Объект ориентации от одного типа углов эйлеров

t = m3d.Transform(o, v) # A Объект преобразования, созданный с использованием вектора и ориентации

t2 = m3d.Transform() # Другой объект Transform (Identity)

t2.orient.rotate_x (3) # поверните преобразование вокруг x

res = t * t2 # Матричное умножение

Ответ 6

Я бы предложил MayaVi. Пожалуйста, взгляните на данную ссылку. Он делает почти все, что вы упомянули.

Ответ 7

Сейчас я работаю над этим. https://github.com/adamlwgriffiths/Pyrr

Он использует numpy для скорости. Цель состоит в том, чтобы предоставить чистую математику python 3D.

Я избегаю внешних библиотек, потому что мне надоело следовать сложным установкам программного обеспечения. Python должен быть легким.

Ответ 8

Как насчет PyGame? Я никогда не использовал его, но он может содержать то, что вы ищете.

Ответ 9

http://cgkit.sourceforge.net/doc/index.html

Реализация не всегда лучшая, но она включает в себя кватернионы, а также стандартные матричные и векторные типы. Я использовал его для инструментов в нескольких коммерческих играх.