layerview.visualization.linalg module

Linear algebra utilities.

layerview.visualization.linalg.angle_inner(a: LVecBase2d, b: LVecBase2d)[source]

Return angle between vector 1 and vector 2, expressed in radians.

Does NOT take vector ordering into account.

Examples

Vector order does NOT matter. >>> a = LVecBase2d(1, 0) >>> b = LVecBase2d(0, 1) >>> angle_inner(a, b) == angle_inner(b, a) >>> True

Parameters:
  • a (LVecBase2d) –

  • b (LVecBase2d) –

Returns:

Angle between a and b, expressed in radians.

Return type:

float

layerview.visualization.linalg.angle_signed(a: LVecBase2d, b: LVecBase2d)[source]

Return angle between vector a and vector b, expressed in radians.

Takes angle signedness (positive/negative) into account

Examples

Reversing vector order >>> a = LVecBase2d(1, 0) >>> b = LVecBase2d(0, 1) >>> angle_signed(a, b) >>> 1.5707963267948966 >>> angle_signed(b, a) >>> -1.5707963267948966 >>> angle_signed(a, b) == - angle_signed(b, a) >>> True

Parameters:
  • a (LVecBase2d) –

  • b (LVecBase2d) –

Returns:

Inner angle between a and b, expressed in radians.

Return type:

float

layerview.visualization.linalg.determinant(a: LVecBase2d, b: LVecBase2d)[source]
layerview.visualization.linalg.vec_rotated(vector: LVecBase2d, pivot: LVecBase2d, angle: float)[source]

Return vector rotated by angle around pivot.

Parameters:
  • vector (LVecBase2d) – The point to rotate.

  • pivot (LVecBase2d) – The point to rotate about.

  • angle (float) – Rotation angle, expressed in radians.

Returns:

rotated – Point rotated about pivot by the specified angle.

Return type:

LVecBase2d