Add a density parameter to GenImageRadialGradient
This commit is contained in:
parent
c3049a9b06
commit
786cd63057
@ -22,7 +22,7 @@ int main()
|
||||
|
||||
Image verticalGradient = GenImageGradientV(screenWidth, screenHeight, RED, BLUE);
|
||||
Image horizontalGradient = GenImageGradientH(screenWidth, screenHeight, RED, BLUE);
|
||||
Image radialGradient = GenImageRadialGradient(screenWidth, screenHeight, WHITE, BLACK);
|
||||
Image radialGradient = GenImageRadialGradient(screenWidth, screenHeight, 0.f, WHITE, BLACK);
|
||||
Image checked = GenImageChecked(screenWidth, screenHeight, 32, 32, RED, BLUE);
|
||||
Image whiteNoise = GenImageWhiteNoise(screenWidth, screenHeight, 0.5f);
|
||||
Image perlinNoise = GenImagePerlinNoise(screenWidth, screenHeight, 8.f);
|
||||
|
@ -877,7 +877,7 @@ RLAPI void ImageColorBrightness(Image *image, int brightness);
|
||||
// Image generation functions
|
||||
RLAPI Image GenImageGradientV(int width, int height, Color top, Color bottom); // Generate image: vertical gradient
|
||||
RLAPI Image GenImageGradientH(int width, int height, Color left, Color right); // Generate image: horizontal gradient
|
||||
RLAPI Image GenImageRadialGradient(int width, int height, Color inner, Color outer); // Generate image: radial gradient
|
||||
RLAPI Image GenImageRadialGradient(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient
|
||||
RLAPI Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, Color col2); // Generate image: checked
|
||||
RLAPI Image GenImageWhiteNoise(int width, int height, float factor); // Generate image: white noise
|
||||
RLAPI Image GenImagePerlinNoise(int width, int height, float scale); // Generate image: perlin noise
|
||||
|
@ -1493,7 +1493,7 @@ Image GenImageGradientH(int width, int height, Color left, Color right)
|
||||
}
|
||||
|
||||
// Generate image: radial gradient
|
||||
Image GenImageRadialGradient(int width, int height, Color inner, Color outer)
|
||||
Image GenImageRadialGradient(int width, int height, float density, Color inner, Color outer)
|
||||
{
|
||||
Color *pixels = (Color*)malloc(width * height * sizeof(Color));
|
||||
float radius = (width < height) ? (float)width / 2.f : (float)height / 2.f;
|
||||
@ -1505,7 +1505,8 @@ Image GenImageRadialGradient(int width, int height, Color inner, Color outer)
|
||||
for (int x = 0; x < width; x++)
|
||||
{
|
||||
float dist = hypotf((float)x - center_x, (float)y - center_y);
|
||||
float factor = dist / radius;
|
||||
float factor = (dist - radius * density) / (radius * (1.f - density));
|
||||
factor = fmax(factor, 0.f);
|
||||
factor = fmin(factor, 1.f); // dist can be bigger than radius so we have to check
|
||||
pixels[y*width + x].r = (int)((float)outer.r * factor + (float)inner.r * (1.f - factor));
|
||||
pixels[y*width + x].g = (int)((float)outer.g * factor + (float)inner.g * (1.f - factor));
|
||||
|
Loading…
Reference in New Issue
Block a user