compas.geometry.Scale

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

Bases: compas.geometry.transformations.transformation.Transformation

Creates a scale transformation.

Parameters

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

Raises

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

Examples

>>> S = Scale.from_factors([1, 2, 3])
>>> S[0, 0] == 1
True
>>> S[1, 1] == 2
True
>>> S[2, 2] == 3
True
>>> from compas.geometry import Point, Frame
>>> point = Point(2, 5, 0)
>>> frame = Frame(point, (1, 0, 0), (0, 1, 0))
>>> points = [point, Point(2, 10, 0)]
>>> S = Scale.from_factors([2.] * 3, frame)
>>> [p.transformed(S) for p in points]
[Point(2.000, 5.000, 0.000), Point(2.000, 15.000, 0.000)]

Methods

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_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_euler_angles(euler_angles[, static, …])

Construct a transformation from a rotation represented by Euler angles.

from_factors(factors[, frame])

Construct a scale transformation from scale factors.

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_json(filepath)

Construct an object from serialized data contained in a JSON file.

from_jsonstring(string)

Construct an object from serialized data contained in a JSON string.

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.

to_json(filepath[, pretty])

Serialize the data representation of an object to a JSON file.

to_jsonstring([pretty])

Serialize the data representation of an object to a JSON string.

transpose()

Transpose the matrix of this transformation.

transposed()

Create a transposed copy of this transformation.

validate_data()

Validate the object’s data against its data schema (self.DATASCHEMA).

validate_json()

Validate the object’s data against its json schema (self.JSONSCHEMA).

Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

basis_vectors

The basis vectors from the rotation component of the transformation matrix.

data

Return a Transformation object’s to a data dict.

determinant

The determinant of the matrix of the transformation.

dtype

The type of the object in the form of a “2-level” import and a class name.

guid

The globally unique identifier of the object.

list

Flattens the 4x4 transformation matrix into a list of 16 numbers.

name

The name of the object.

projection

The projection component of the transformation matrix.

rotation

The rotation component of the transformation matrix.

scale

The scale component of the transformation matrix.

shear

The shear component of the transformation matrix.

translation

The translation component of the transformation matrix.

translation_vector