mirror of
https://github.com/GRRLIB/GRRLIB.git
synced 2024-11-26 08:42:19 +00:00
[NEW] GRRLIB_Circle function by Dark-Link
This commit is contained in:
parent
971bc0f9b5
commit
f3a8825d21
4 changed files with 34 additions and 2 deletions
|
@ -9,6 +9,7 @@
|
|||
#include <malloc.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include "../lib/libpng/pngu/pngu.h"
|
||||
#include "../lib/libjpeg/jpeglib.h"
|
||||
#include "GRRLIB.h"
|
||||
|
@ -90,6 +91,37 @@ inline void GRRLIB_Rectangle(f32 x, f32 y, f32 width, f32 height, u32 color, u8
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw a circle.
|
||||
* @author Dark-Link
|
||||
* @param x.
|
||||
* @param y.
|
||||
* @param radius the radius of the circle.
|
||||
* @param color the color of the circle in RGBA format.
|
||||
* @param filled true to fill the circle with a color.
|
||||
*/
|
||||
inline void GRRLIB_Circle(f32 x, f32 y, f32 radius, u32 color, u8 filled) {
|
||||
Vector v[36];
|
||||
u32 a;
|
||||
f32 ra;
|
||||
f32 G_DTOR = M_DTOR * 10;
|
||||
|
||||
for (a = 0; a < 36; a++) {
|
||||
ra = a * G_DTOR;
|
||||
|
||||
v[a].x = cos(ra) * radius + x;
|
||||
v[a].y = sin(ra) * radius + y;
|
||||
v[a].z = 0.0f;
|
||||
}
|
||||
|
||||
if (!filled) {
|
||||
GRRLIB_GXEngine(v, color, 36, GX_LINESTRIP);
|
||||
}
|
||||
else {
|
||||
GRRLIB_GXEngine(v, color, 36, GX_TRIANGLEFAN);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw a polygon.
|
||||
* @param v
|
||||
|
|
|
@ -69,6 +69,7 @@ void GRRLIB_NPlot(Vector v[], u32 color, long n);
|
|||
inline void GRRLIB_Line(f32 x1, f32 y1, f32 x2, f32 y2, u32 color);
|
||||
|
||||
inline void GRRLIB_Rectangle(f32 x, f32 y, f32 width, f32 height, u32 color, u8 filled);
|
||||
inline void GRRLIB_Circle(f32 x, f32 y, f32 radius, u32 color, u8 filled);
|
||||
void GRRLIB_NGone(Vector v[], u32 color, long n);
|
||||
void GRRLIB_NGoneFilled(Vector v[], u32 color, long n);
|
||||
|
||||
|
|
|
@ -147,6 +147,7 @@ int main() {
|
|||
GRRLIB_Line(100, 100, 350, 200, GRRLIB_SILVER);
|
||||
GRRLIB_NGoneFilled(triangle, GRRLIB_GRAY, 3);
|
||||
GRRLIB_Rectangle(left + 150, top + 150, 200, 200, 0x0000FFC8, 1); // Blue with alpha
|
||||
GRRLIB_Circle(left + 300, top + 300, 50, GRRLIB_OLIVE, 1);
|
||||
|
||||
// Draw a yellow four pixel dot where the wiimote is pointing
|
||||
GRRLIB_Plot(ir1.sx, ir1.sy, GRRLIB_YELLOW);
|
||||
|
|
|
@ -24,8 +24,6 @@ ChangeLog :
|
|||
|
||||
* Color format change for ALL GRRLib function (now its RGBA) to fit to GX_Color format and use GX_Color1u32
|
||||
|
||||
* Name Change GRRLIB_LoadTexture to GRRLIB_LoadTexturePNG
|
||||
|
||||
* GRRLib introduce a new texture structure (easier to handle texture width, height, etc ...):
|
||||
typedef struct GRRLIB_texImg{
|
||||
unsigned int w;
|
||||
|
|
Loading…
Reference in a new issue