matrix_from_shear
- compas.geometry.matrix_from_shear(angle, direction, point, normal)[source]
Constructs a shear matrix by an angle along the direction vector on the shear plane (defined by point and normal).
- Parameters:
- anglefloat
The angle in radians.
- direction[float, float, float] |
compas.geometry.Vector
The direction vector as list of 3 numbers. It must be orthogonal to the normal vector.
- point[float, float, float] |
compas.geometry.Point
The point of the shear plane as list of 3 numbers.
- normal[float, float, float] |
compas.geometry.Vector
The normal of the shear plane as list of 3 numbers.
- Returns:
- list[list[float]]
A 4-by-4 transformation matrix.
- Raises:
- ValueError
If direction and normal are not orthogonal.
Notes
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 (defined by point and normal).
Examples
>>> angle = 0.1 >>> direction = [0.1, 0.2, 0.3] >>> point = [4, 3, 1] >>> normal = cross_vectors(direction, [1, 0.3, -0.1]) >>> S = matrix_from_shear(angle, direction, point, normal)