Skip to main content

ROX Vectors

A lightweight and simple 2D vector class for Python, providing essential vector operations, geometric transformations, and utility functions. Perfect for mathematical simulations and robotics.

Features

  • Basic Vector Operations: Addition, subtraction, multiplication, division, negation.
  • Geometric Properties: Vector length, angle, normalization, and perpendicular vectors.
  • Transformation Utilities: Translation and rotation.
  • Dot and Cross Product calculations.
  • Line Segment manipulation and properties.

Installation

pip install rox-vectors

Usage Examples

Creating Vectors

from rox_vectors import Vector

v1 = Vector(3, 4)
v2 = Vector(1, 2)
print(v1)  # (3.000, 4.000)
print(v2)  # (1.000, 2.000)

Basic Operations

v3 = v1 + v2  # (4.000, 6.000)
v4 = v1 - v2  # (2.000, 2.000)
v5 = v1 * 2   # (6.000, 8.000)
v6 = v1 / 2   # (1.500, 2.000)
v7 = -v1      # (-3.000, -4.000)

Geometric Properties

length = v1.r        # 5.0
angle = v1.phi       # 0.927 (in radians)
v8 = v1.u            # (0.600, 0.800)
v9 = v1.v            # (-0.800, 0.600)

Dot and Cross Products

dot_product = v1.dot(v2)       # 11.0
cross_product = v1.cross(v2)   # 2.0

Vector Transformation

v10 = v1.translate(2, 3)       # (5.000, 7.000)
v11 = v1.rotate(math.radians(90))  # (-4.000, 3.000)

Line Segment

from rox_vectors import Line

line = Line(Vector(0, 0), Vector(1, 1))
line.shift_y(1)
print(line)  # <Line(start=(0.000,1.000), end=(1.000,2.000))>
line_angle = line.phi  # 0.785 (in radians)

Distance and Projection Utilities

from rox_vectors import point_on_line, distance_to_line, distance_to_b

a = Vector(0, 0)
b = Vector(4, 4)
x = Vector(2, 3)

projection = point_on_line(a, b, x)  # (2.500, 2.500)
distance = distance_to_line(a, b, x) # 0.707
distance_b = distance_to_b(a, b, x)  # -0.707

Development

  1. Init host system with init_host.sh. This will build a dev image.

  2. Launch in VSCode devcontainer.

  3. develop and test in devcontainer (VSCode)

  4. trigger ci builds by bumping version with a tag. (see .gitlab-ci.yml)

Tooling

  • Automation: invoke - run invoke -l to list available commands. (uses tasks.py)
  • Verisoning : setuptools_scm
  • Linting and formatting : pylint
  • Typechecking: mypy

What goes where

  • src/rox_vectors app code. pip install . .
  • tasks.py automation tasks.
  • .gitlab-ci.yml takes care of the building steps.

Metadata

Release files for rox-vectors 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rox-vectors 0.2.3
File Size Uploaded
rox_vectors-0.2.3.tar.gz 13.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rox-vectors 0.2.3
File Interpreter ABI Platform
rox_vectors-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 19.2 kB

Release files / rox_vectors-0.2.3.tar.gz

Download URL rox_vectors-0.2.3.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2bf5042c70d39172ac69d8efad7a0076a77c5ee5001bb5ac9ca02c822f743aaf
BLAKE2b-256 checksum
How to use checksums
4df60b8caad8679043976edd9129d21a6c686e1ef8b3bc04a6ab2dff2da5a579
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / rox_vectors-0.2.3-py3-none-any.whl

Download URL rox_vectors-0.2.3-py3-none-any.whl
Size 6.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03bbd7f894cadc8cd11637152e6d2d928b6d41eb757070e1b4c8bf01ed953966
BLAKE2b-256 checksum
How to use checksums
a5e4cbb729bf5cf9f2fa75fe3292f68da06d37a7307850053d4489ccaa3eb8ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.1

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page