Skip to main content

TestStatus PyPiStatus BlackStyle

Define, sequence, and apply transformations in 3D. Taken from merlict_c89_link and wrapped in python with a numpy friendly interface.

Define

t_civil = {
    "pos": [1.0, 0.0, 0.0],
    "rot": {
        "repr": "axis_angle",
        "axis":[0.0, 0.0, 1.0],
        "angle_deg": 0.3,
    },
}

Transformations can be defined with a civil representation in a dict. The rotation can be represented by either ‘axis_angle’, ‘tait_bryan’, or ‘quaternion’. To apply the transformation we compile it.

import homogeneous_transformation as ht
t = ht.compile(t_civil)

The civil representation can be compiled into a compact numpy array t of shape (7, ).

In : t
Out: array([1. , 0. , 0. , 0.99999657, 0. , 0. , 0.00261799])

The first 3 fields are the translation vector and the remaining 4 fields are the rotation quaternion. One can also export this with to_matrix into a homogenous transformation matrix of shape (4, 4).

In : ht.to_matrix(t)
Out:
array([[ 0.99998629, -0.00523596,  0.        ,  1.        ],
       [ 0.00523596,  0.99998629,  0.        ,  0.        ],
       [ 0.        ,  0.        ,  1.        ,  0.        ],
       [ 0.        ,  0.        ,  0.        ,  1.        ]])

Sequence

Transformations in compact representation can be concatenated to compute the sequence.

t_ab = ht.sequence(t_a, t_b)

Apply

Apply transformations to positions, orientations, or rays.

import numpy as np

vec = np.array([0, 0, 1])

t_vec = ht.transform_position(t, vec)

Here vec can either be a single vector of shape (3, ) or an array of N vectors with shape (N, 3). The loop over the individual vectors is in the C backend and thus very efficient.

Download files

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

Source Distribution

homogeneous_transformation-0.0.1.1.7.2.tar.gz (114.3 kB view details)

Uploaded Source

File details

Details for the file homogeneous_transformation-0.0.1.1.7.2.tar.gz.

File metadata

File hashes

Hashes for homogeneous_transformation-0.0.1.1.7.2.tar.gz
Algorithm Hash digest
SHA256 c46bab5e96bf360f9384e7ca7e550ce15ca7a69718d2d012cca0355251e5feb8
MD5 c9ca48a21db4b630be0487b50c617d8b
BLAKE2b-256 f44e54f45f88d331fde0c25e7e81f4f30fdf4176e5e40e78d5ad89b14fbaa17d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.1.1.7.2 This release

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page