Trigonometry🍋
angle_between_points(p1, p2, dip_convention=DipDownward.NEGATIVE)
🍋
Compute angle between two points.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
p1 |
ndarray
|
Point in 2 or 3 dimension. |
required |
p2 |
ndarray
|
Point in 2 or 3 dimension. |
required |
dip_convention |
DipDownward
|
Convention of downward dip angle sign. |
NEGATIVE
|
Returns:
Type | Description |
---|---|
Tuple[float, float]
|
Angles in a given Metric convention. |
angle_between_vectors(v1, v2)
🍋
normalize(a, center)
🍋
(Adapted from Apach Commons normalizeAngle, MathUtils sources) Normalize an angle in a 2pi; wide interval around a center value.
This method has three main uses:
- normalize an angle between 0 and 2pi: a = normalize(a, np.pi)
- normalize an angle between -pi and +pi: a = normalize(a, 0.0)
- compute the angle between two defining angular positions: angle = normalize(end, start) - start
Parameters:
Name | Type | Description | Default |
---|---|---|---|
a |
float
|
angle to be normalized (in radians). |
required |
center |
float
|
center value in radians. |
required |
Returns:
Type | Description |
---|---|
float
|
normalized angle in radians. |
Example
import geolime as geo
import numpy as np
geo.normalize(np.pi / 2, 2 * np.pi)
7.853981633974483
Info
Due to numerical accuracy and since pi cannot be represented exactly, the result interval is closed, it cannot be half-closed as would be more satisfactory in a purely mathematical view.
rot_x(gamma, deg=True, clockwise=False)
🍋
rot_y(beta, deg=True, clockwise=False)
🍋
rot_z(alpha, deg=True, clockwise=False)
🍋
rot_zxz(angles, deg=True, clockwise=[False, False, False])
🍋
Example of a convention.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
angles |
Vector
|
Description of parameter |
required |
deg |
bool
|
Description of parameter |
True
|
clockwise |
List[bool]
|
Clockwise if set to True, counter-clockwise otherwise. |
[False, False, False]
|
Returns:
Type | Description |
---|---|
ndarray
|
A rotation matrix. |