commonlibs.math package

Submodules

commonlibs.math.interpolation module

Interpolation

commonlibs.math.interpolation.lin_interpol(y12, x12, x)[source]

Return linear interpolation between two support points.

Args:
y12:(tuple) y1 and y2 value
x12:(tuple) x1 and x2 value
x:(float) position for which to return the interpolation
Returns:
y_x:(float) linearly interpolated y(x)

commonlibs.math.vectors module

Vectors

commonlibs.math.vectors.angle_between(vector1, vector2)[source]

Return the angle in radians between vectors ‘vector1’ and ‘vector2’

# See also: https://stackoverflow.com/questions/2827393/
angles-between-two-n-dimensional-vectors-in-python/13849249#13849249
commonlibs.math.vectors.axis_rot_matrix(axis, angle)[source]

Return a rotation matrix associated with counterclockwise rotation about a given axis by angle radians.

Note:
Args:
axis:3x1 axis vector
angle:rotation aangle in radians
Returns:
R:rotation matrix
commonlibs.math.vectors.direction_cosine(vector1, vector2)[source]

Returns the direcion cosine between vectors ‘vector1’ and ‘vector2’

See also:

Args:
vector1:First vector
vector2:Second vector
Returns:
direction_cosine:
 Direction cosine
commonlibs.math.vectors.get_plane_line_intersect(plane_normal, plane_point, line_direction, line_point, epsilon=1e-06)[source]

Get the intersection point for a line and a plane in 3D space.

Note:
  • The line is defined by its direction (vector) and any point on the line
  • The plane is defined by its normal (vector) and any point on the plane
Args:
plane_normal:3x1 normal vector of the plane
plane_point:point (3x1 vector) of the plane (any)
line_direction:3x1 vector with the direction of the line
line_point:point (3x1 vector) of the line (any)
epsilon:tolerance for near-orthogonal ‘plane_normal’ and ‘line_direction’
commonlibs.math.vectors.rotate_vector_around_axis(vector, axis, angle, return_unit=False)[source]

Rotate a vector by an angle around a defined axis.

Note:

  • Returns the original vector if the Euclidean norm of ‘vector’ or ‘axis’ is zero or if ‘angle’ is zero
Args:
vector:Vector to be rotated
axis:3x1 axis vector
angle:Rotation angle in radians
Returns:
rot_vector:rotated vector
commonlibs.math.vectors.unit_vector(vector)[source]

Return the unit vector of a vector.

commonlibs.math.vectors.vector_projection(a, b)[source]

Return the vector projection from vector a onto vector b

See:
Args:
a:vector to be projected
b:vector onto which a is projected
Returns:
a1:vector projection
commonlibs.math.vectors.vector_projection_onto_plane(vector, plane_normal)[source]

Project a vecor onto a plane

Args:
vector:vector to be projected
plane_normal:normal vector of the plane
Returns:
vector_proj:projected vector
commonlibs.math.vectors.vector_rejection(a, b)[source]

Return the vector rejection from vector a onto vector b

See:
Args:
a:vector to be projected
b:vector onto which a is projected
Returns:
a2:vector rejection

Module contents