Skip to main content

View and work on plenoscope events

Project description

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.

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

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

Uploaded Source

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