|
|
@ -2014,6 +2014,63 @@ void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color) |
|
|
|
ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y + rec.height - thick, rec.width, thick }, color); |
|
|
|
} |
|
|
|
|
|
|
|
// Clear image background with given color |
|
|
|
void ImageClearBackground(Image *dst, Color color) |
|
|
|
{ |
|
|
|
ImageDrawRectangle(dst, (Rectangle){ 0.0f, 0.0f, dst->width, dst->height }, color); |
|
|
|
} |
|
|
|
|
|
|
|
// Draw pixel within an image |
|
|
|
void ImageDrawPixel(Image *dst, Vector2 position, Color color) |
|
|
|
{ |
|
|
|
ImageDrawRectangle(dst, (Rectangle){ position.x, position.y, 1.0f, 1.0f }, color); |
|
|
|
} |
|
|
|
|
|
|
|
// Draw circle within an image |
|
|
|
void ImageDrawCircle(Image *dst, Vector2 center, int radius, Color color) |
|
|
|
{ |
|
|
|
int x = 0, y = radius, xc = center.x, yc = center.y; |
|
|
|
int decesionParameter = 3 - 2 * radius; |
|
|
|
while (y >= x) |
|
|
|
{ |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc + x, yc + y }, color); |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc - x, yc + y }, color); |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc + x, yc - y }, color); |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc - x, yc - y }, color); |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc + y, yc + x }, color); |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc - y, yc + x }, color); |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc + y, yc - x }, color); |
|
|
|
ImageDrawPixel(dst, (Vector2){ xc - y, yc - x }, color); |
|
|
|
x++; |
|
|
|
if (decesionParameter > 0) |
|
|
|
{ |
|
|
|
y--; |
|
|
|
decesionParameter = decesionParameter + 4 * (x - y) + 10; |
|
|
|
} |
|
|
|
else |
|
|
|
decesionParameter = decesionParameter + 4 * x + 6; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Draw line within an image |
|
|
|
void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, Color color) |
|
|
|
{ |
|
|
|
int x1 = start.x, y1 = start.y, x2 = end.x, y2 = end.y; |
|
|
|
int m = 2 * (y2 - y1); |
|
|
|
int slopeError = m - (x2 - x1); |
|
|
|
for (int x = x1, y = y1; x <= x2; x++) |
|
|
|
{ |
|
|
|
ImageDrawPixel(dst, (Vector2){ x, y }, color); |
|
|
|
slopeError += m; |
|
|
|
|
|
|
|
if (slopeError >= 0) |
|
|
|
{ |
|
|
|
y++; |
|
|
|
slopeError -= 2 * (x2 - x1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Draw text (default font) within an image (destination) |
|
|
|
void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color) |
|
|
|
{ |
|
|
|