geom2d.transform2d¶
Basic 2D affine transform matrix operations.
- geom2d.transform2d.canonicalize_point(p: Sequence[float], origin: Sequence[float], theta: float) tuple[float, float] ¶
Canonicalize the point.
This just rotates then translates the point so that the origin is (0, 0) and axis rotation is zero.
- Parameters:
p – The point to canonicalize (x, y).
origin – The origin offset as a 2-tuple (X, Y).
theta – The axis rotation angle.
- Returns:
A point as 2-tuple
- geom2d.transform2d.compose_transform(m1: tuple[tuple[float, float, float], tuple[float, float, float]], m2: tuple[tuple[float, float, float], tuple[float, float, float]]) tuple[tuple[float, float, float], tuple[float, float, float]] ¶
Combine two matrices by multiplying them.
- Parameters:
m1 – 2X3 2D transform matrix.
m2 – 2X3 2D transform matrix.
Note
m2 is applied before (to) m1
- geom2d.transform2d.create_transform(scale: Sequence[float] = (1, 1), offset: Sequence[float] = (0, 0), rotate_angle: float = 0, rotate_origin: Sequence[float] = (0, 0)) TMatrix ¶
Create transform matrix.
- geom2d.transform2d.is_identity_transform(m: tuple[tuple[float, float, float], tuple[float, float, float]]) bool ¶
Return True if the matrix is the identity matrix.
- geom2d.transform2d.matrix_apply_to_point(m: TMatrix, p: Sequence[float]) tuple[float, float] ¶
Return a copy of p with the transform matrix applied to it.
- geom2d.transform2d.matrix_equals(a: tuple[tuple[float, float, float], tuple[float, float, float]], b: tuple[tuple[float, float, float], tuple[float, float, float]]) bool ¶
Return True if the matrix is the identity matrix.
- geom2d.transform2d.matrix_rotate(angle: float, origin: Sequence[float] | None = None) TMatrix ¶
Create a transform matrix to rotate about the origin.
- Parameters:
angle – Rotation angle in radians.
origin – Optional rotation origin. Default is (0,0).
- Returns:
A transform matrix as 2x3 tuple
- geom2d.transform2d.matrix_scale(scale_x: float, scale_y: float, origin: Sequence[float] | None = None) TMatrix ¶
Create a transform matrix to scale.
- Parameters:
scale_x – X axis scale factor
scale_y – Y axis scale factor
origin – Optional scale origin. Default is (0,0).
- Returns:
A transform matrix as 2x3 tuple
- geom2d.transform2d.matrix_scale_translate(scale_x: float, scale_y: float, offset_x: float, offset_y: float) tuple[tuple[float, float, float], tuple[float, float, float]] ¶
Create a transform matrix to scale and translate.
- Parameters:
scale_x – X axis scale factor
scale_y – Y axis scale factor
offset_x – translation along X axis
offset_y – translation along Y axis
- Returns:
A transform matrix as 2x3 tuple
- geom2d.transform2d.matrix_skew_x(angle: float) tuple[tuple[float, float, float], tuple[float, float, float]] ¶
Create a transform matrix to skew along X axis by angle.
- Parameters:
angle – Angle in radians to skew.
- Returns:
A transform matrix as 2x3 tuple
- geom2d.transform2d.matrix_skew_y(angle: float) tuple[tuple[float, float, float], tuple[float, float, float]] ¶
Create a transform matrix to skew along Y axis by angle.
- Parameters:
angle – Angle in radians to skew.
- Returns:
A transform matrix as 2x3 tuple
- geom2d.transform2d.matrix_translate(x: float, y: float) tuple[tuple[float, float, float], tuple[float, float, float]] ¶
Create a transform matrix to translate (move).
- Parameters:
x – translation along X axis
y – translation along Y axis
- Returns:
A transform matrix as 2x3 tuple