Shear

class compas.geometry.Shear(matrix=None)[source]

Bases: compas.geometry.transformations.transformation.Transformation

Create a shear transformation.

A point P is transformed by the shear matrix into P” such that the vector P-P” is parallel to the direction vector and its extent is given by the angle of P-P’-P”, where P’ is the orthogonal projection of P onto the shear plane.

Parameters

matrix (4x4 matrix-like, optional) – A 4x4 matrix (or similar) representing a shear transformation.

Raises

ValueError – If the default constructor is used, and the provided transformation matrix is not a shear matrix.

Examples

>>>

Methods

__init__([matrix])

Construct a transformation from a 4x4 transformation matrix.

concatenate(other)

Concatenate another transformation to this transformation.

concatenated(other)

Concatenate two transformations into one Transformation.

copy()

Returns a copy of the transformation.

decomposed()

Decompose the Transformation into its Scale, Shear, Rotation, Translation and Projection components.

from_angle_direction_plane(angle, direction, …)

Parameters
  • angle (float) – The angle in radians.

from_change_of_basis(frame_from, frame_to)

Computes a change of basis transformation between two frames.

from_data(data)

Creates a Transformation from a data dict.

from_entries(shear_entries)

Creates a Shear from the 3 factors for x-y, x-z, and y-z axes.

from_euler_angles(euler_angles[, static, …])

Construct a transformation from a rotation represented by Euler angles.

from_frame(frame)

Computes a transformation from world XY to frame.

from_frame_to_frame(frame_from, frame_to)

Computes a transformation between two frames.

from_list(numbers)

Creates a Transformation from a list of 16 numbers.

from_matrix(matrix)

Creates a Transformation from a 4x4 matrix-like object.

inverse()

Returns the inverse transformation.

invert()

Invert this transformation.

inverted()

Returns the inverse transformation.

to_data()

Convert a Transformation object to a data dict.

transpose()

Transpose the matrix of this transformation.

transposed()

Create a transposed copy of this transformation.