LYGIA Shader Library

polar2cart (lygia/space/polar2cart)

polar to cartesian conversion.

Use:

polar2cart(<vec2> polar)

Check it on Github


#ifndef FNC_POLAR2CART
#define FNC_POLAR2CART

vec2 polar2cart(in vec2 polar) {
    return vec2(cos(polar.x), sin(polar.x)) * polar.y;
}

// https://mathworld.wolfram.com/SphericalCoordinates.html
vec3 polar2cart( in float r, in float phi, in float theta) {
    float x = r * cos(theta) * sin(phi);
    float y = r * sin(theta) * sin(phi);
    float z = r * cos(phi);
    return vec3(x, y, z);
}

#endif

Use:

polar2cart(<float2> polar)

Check it on Github


#ifndef FNC_POLAR2CART
#define FNC_POLAR2CART

float2 polar2cart(in float2 polar) {
    return float2(cos(polar.x), sin(polar.x)) * polar.y;
}

// https://mathworld.wolfram.com/SphericalCoordinates.html
float3 polar2cart( in float r, in float phi, in float theta) {
    float x = r * cos(theta) * sin(phi);
    float y = r * sin(theta) * sin(phi);
    float z = r * cos(phi);
    return float3(x, y, z);
}

#endif

Use:

polar2cart(<float2> polar)

Check it on Github


#ifndef FNC_POLAR2CART
#define FNC_POLAR2CART
float2 polar2cart(float2 polar) { return float2(cos(polar.x), sin(polar.x)) * polar.y; }
#endif

LYGIA is dual-licensed under the Prosperity License and the Patron License for sponsors and contributors.

Sponsors and contributors are automatically added to the Patron License and they can ignore the any non-commercial rule of the Prosperity Licensed software (please take a look to the exception).

It's also possible to get a permanent comercial license hook to a single and specific version of LYGIA.

Get the latest news and releases

Sign up for the news letter bellow, joing the LYGIA's channel on Discord or follow the Github repository