Skip to main content

A Python 3-dimensional Euclidean vector space.

Project description

PyEVSpace

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.0.12.3.tar.gz (40.4 kB view details)

Uploaded Source

Built Distribution

pyevspace-0.0.12.3-cp310-cp310-win_amd64.whl (45.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

File details

Details for the file pyevspace-0.0.12.3.tar.gz.

File metadata

  • Download URL: pyevspace-0.0.12.3.tar.gz
  • Upload date:
  • Size: 40.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for pyevspace-0.0.12.3.tar.gz
Algorithm Hash digest
SHA256 c0eaa5a04e016591c342a0f55b618e491b9cc5e1ab3249319125bcf034f54cc6
MD5 3c9a390748bef10106afc7a6f24b611d
BLAKE2b-256 9f5d22f89b3402b8743c23a59dee1cf0dec86fcef8f6aaa4c01e001c6811bc96

See more details on using hashes here.

File details

Details for the file pyevspace-0.0.12.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyevspace-0.0.12.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 873bf7e9a8435d6ba75f3aa442bfe6db9597e1b4b39ece2699a394e4295cc3e3
MD5 f379a95f60315236c38fb19b139e6a99
BLAKE2b-256 66d0500a0a71fb6628182625029569514853f34ed938a1a29b2f0f22688ed035

See more details on using hashes here.

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