Py5Vector.from_heading()#

Class method to create a new vector with a given heading, measured in radians.

Examples#

import numpy as np

v1 = py5.Py5Vector.from_heading(py5.radians(45))
print(v1)
# Py5Vector2D(0.70710678, 0.70710678)

v2 = py5.Py5Vector.from_heading(py5.radians(90), py5.radians(45), dtype=np.float16)
print(v2)
# Py5Vector3D(0.707, 0.707, 0.)

v3 = py5.Py5Vector.from_heading(py5.radians(90), py5.radians(45), py5.radians(45), dtype=np.float16)
print(v3)
# Py5Vector4D(0., 0.707, 0.5, 0.5)

Description#

Class method to create a new vector with a given heading, measured in radians. Use 1, 2, or 3 heading values for 2D, 3D, or 4D vectors, respectively.

For 2D vectors, the heading angle is the counter clockwise rotation of the vector relative to the positive x axis.

For 3D vectors, the heading values follow the ISO convention for spherical coordinates. The first heading value, inclination, is the angle relative to the positive z axis. The second heading value, azimuth, is the counter clockwise rotation of the vector around the z axis relative to the positive x axis. Note that this is slightly different from p5’s fromAngles() function, which also follows the ISO convention but measures angles relative to the top of the screen (negative y axis).

For 4D vectors, the heading values follow the spherical coordinate system defined in Wikipedia’s N-sphere article. The first heading value is the rotation around the zw plane relative to the positive x axis. The second heading value is the rotation around the xw plane relative to the positive y axis. The third heading value is the rotation around the xy plane relative to the positive z axis.

Signatures#

from_heading(
    *heading,
    dtype: int = np.float64  # dtype of new vector to create
) -> Py5Vector

Updated on February 07, 2024 03:43:17am UTC