Skip to main content

A Python 3-dimensional Euclidean vector space.

Project description

PyEVSpace 0.14.2

Github test action PyPi Supported Python versions License

PyEVSpace is a Python Euclidean vector space package containing types and methods for representing vector quantites and fasilitating rotating them between reference frames. PyEVSpace is designed for 3-dimensional space only, which allows for optimum speed since size checks do not occur.

Documentation

The full documentation of this project with both Python and C APIs can be found here.

Install

The python module can be installed with

pip install pyevspace

Alternatively the repository can be downloaded or cloned using:

git clone https://github.com/qbizzle68/pyevspace.git

It can be used as is within Visual Studio, or built inplace using the setup.py if needed.

Usage

To use the module simply import the pyevspace module into your project:

import pyevspace as evs
from math import pi

vec = evs.Vector(1, 2, 3)

rotatedVec = evs.rotateAxisTo(evs.X_AXIS, pi/2)

Matrices can be created from iterables, where each iterable represents a row of the matrix

import pyevspace as evs

mat = evs.Matrix((0, 0, 1), (0, -1, 0), (1, 0, 0))

rotatedVec = evs.rotateMatrixFrom(mat, Vector(1, 1, 1))

The Order and Angles types can be used to create an Euler rotation matrix. All twelve Euler rotations are already defined in the module, so you shouldn't need to instantiate an Order object. The Angles object holds the angles for each rotation in the Euler rotation, in the order of the axis rotations (in radians).

import pyevspace as evs

angs = Angles(1.1, 4.5, 3.14)
mat = getMatrixEuler(XYZ, angs)

rotatedVec = mat * Vector(1, 0, 2)

There are many methods that handle the rotations for you, check the official documentation to learn more about them.

Examples

Examples of numeric operators

v1 = Vector(1, 2, 3)
v2 = Vector(4, 5, 6)

print(v1 * 2)
# prints [2, 4, 6]

print(v1 + v2)
# prints [5, 7, 9]

print(v1 - v2)
# prints [-3, -3, -3]

Examples of vector and matrix operators

v1 = Vector(1, 2, 3)
v2 = Vector(4, 5, 6)
m1 = Matrix(Vector(4, 2, 3), Vector(8, 5, 2), Vector(4, 2, 1))

print(dot(v1, v2))
# prints 32.0

print(cross(v1, v2))
# prints [ -3.00000, 6.00000, -3.00000 ]

print(det(m1))
# prints -8.0

print(transpose(m1))
# prints 
# ([4, 2, 3],
# [8, 5, 2],
# [4, 2, 1])

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyevspace-0.14.2.tar.gz (41.3 kB view hashes)

Uploaded Source

Built Distributions

pyevspace-0.14.2-pp310-pypy310_pp73-win_amd64.whl (69.9 kB view hashes)

Uploaded PyPy Windows x86-64

pyevspace-0.14.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (72.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (73.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (66.3 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pyevspace-0.14.2-pp39-pypy39_pp73-win_amd64.whl (70.2 kB view hashes)

Uploaded PyPy Windows x86-64

pyevspace-0.14.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (73.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (66.3 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pyevspace-0.14.2-pp38-pypy38_pp73-win_amd64.whl (70.4 kB view hashes)

Uploaded PyPy Windows x86-64

pyevspace-0.14.2-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (73.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (66.5 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pyevspace-0.14.2-pp37-pypy37_pp73-win_amd64.whl (70.4 kB view hashes)

Uploaded PyPy Windows x86-64

pyevspace-0.14.2-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (73.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (66.5 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pyevspace-0.14.2-cp311-cp311-win_amd64.whl (69.8 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

pyevspace-0.14.2-cp311-cp311-win32.whl (66.2 kB view hashes)

Uploaded CPython 3.11 Windows x86

pyevspace-0.14.2-cp311-cp311-musllinux_1_1_x86_64.whl (159.0 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pyevspace-0.14.2-cp311-cp311-musllinux_1_1_i686.whl (144.2 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

pyevspace-0.14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (155.3 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (141.4 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-cp311-cp311-macosx_10_9_x86_64.whl (68.6 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyevspace-0.14.2-cp310-cp310-win_amd64.whl (69.8 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

pyevspace-0.14.2-cp310-cp310-win32.whl (66.2 kB view hashes)

Uploaded CPython 3.10 Windows x86

pyevspace-0.14.2-cp310-cp310-musllinux_1_1_x86_64.whl (153.4 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pyevspace-0.14.2-cp310-cp310-musllinux_1_1_i686.whl (139.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

pyevspace-0.14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (152.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (138.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-cp310-cp310-macosx_10_9_x86_64.whl (68.6 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyevspace-0.14.2-cp39-cp39-win_amd64.whl (70.1 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

pyevspace-0.14.2-cp39-cp39-win32.whl (66.3 kB view hashes)

Uploaded CPython 3.9 Windows x86

pyevspace-0.14.2-cp39-cp39-musllinux_1_1_x86_64.whl (147.4 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pyevspace-0.14.2-cp39-cp39-musllinux_1_1_i686.whl (133.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

pyevspace-0.14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (148.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (133.6 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-cp39-cp39-macosx_10_9_x86_64.whl (68.6 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyevspace-0.14.2-cp38-cp38-win_amd64.whl (70.3 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pyevspace-0.14.2-cp38-cp38-win32.whl (66.4 kB view hashes)

Uploaded CPython 3.8 Windows x86

pyevspace-0.14.2-cp38-cp38-musllinux_1_1_x86_64.whl (149.3 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pyevspace-0.14.2-cp38-cp38-musllinux_1_1_i686.whl (135.4 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

pyevspace-0.14.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyevspace-0.14.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (131.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pyevspace-0.14.2-cp38-cp38-macosx_10_9_x86_64.whl (68.8 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page