Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions manim/utils/space_ops.py
Original file line number Diff line number Diff line change
Expand Up @@ -810,12 +810,22 @@ def earclip_triangulation(verts: np.ndarray, ring_ends: list) -> list:

def cartesian_to_spherical(vec: Vector3DLike) -> np.ndarray:
"""Returns an array of numbers corresponding to each
polar coordinate value (distance, phi, theta).
spherical coordinate value ``(r, theta, phi)``.

Parameters
----------
vec
A numpy array or a sequence of floats ``[x, y, z]``.

Returns
-------
np.ndarray
An array ``[r, theta, phi]`` where:

- ``r`` is the distance (radius) from the origin,
- ``theta`` is the azimuthal angle (angle in the xy-plane
from the positive x-axis),
- ``phi`` is the polar angle (angle from the positive z-axis).
"""
norm = np.linalg.norm(vec)
if norm == 0:
Expand All @@ -833,13 +843,12 @@ def spherical_to_cartesian(spherical: Sequence[float]) -> np.ndarray:
Parameters
----------
spherical
A list of three floats that correspond to the following:

r - The distance between the point and the origin.

theta - The azimuthal angle of the point to the positive x-axis.
A sequence of three floats ``(r, theta, phi)`` where:

phi - The vertical angle of the point to the positive z-axis.
- ``r`` is the distance from the origin,
- ``theta`` is the azimuthal angle (angle in the xy-plane
from the positive x-axis),
- ``phi`` is the polar angle (angle from the positive z-axis).
"""
r, theta, phi = spherical
return np.array(
Expand Down