diff options
| author | Ray <[email protected]> | 2020-01-27 16:21:37 +0100 |
|---|---|---|
| committer | Ray <[email protected]> | 2020-01-27 16:21:37 +0100 |
| commit | 4f7d090fb2f639a9b68378e7250fc159a43acd8d (patch) | |
| tree | 8609508a8abbcbbfbf11bb416484505cb12904c0 /src/shapes.c | |
| parent | 954f029118260dce867c1bf6ff3948ca6a6bee85 (diff) | |
| download | raylib-4f7d090fb2f639a9b68378e7250fc159a43acd8d.tar.gz raylib-4f7d090fb2f639a9b68378e7250fc159a43acd8d.zip | |
ADDED: DrawEllipse() and DrawEllipseLines() #1047
Diffstat (limited to 'src/shapes.c')
| -rw-r--r-- | src/shapes.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/shapes.c b/src/shapes.c index 43037562..ff9e6c1a 100644 --- a/src/shapes.c +++ b/src/shapes.c @@ -398,7 +398,38 @@ void DrawCircleLines(int centerX, int centerY, float radius, Color color) rlVertex2f(centerX + sinf(DEG2RAD*i)*radius, centerY + cosf(DEG2RAD*i)*radius); rlVertex2f(centerX + sinf(DEG2RAD*(i + 10))*radius, centerY + cosf(DEG2RAD*(i + 10))*radius); } - rlEnd(); + rlEnd(); +} + +// Draw ellipse +void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color) +{ + if (rlCheckBufferLimit(3*36)) rlglDraw(); + + rlBegin(RL_TRIANGLES); + for (int i = 0; i < 360; i += 10) + { + rlColor4ub(color.r, color.g, color.b, color.a); + rlVertex2f(centerX, centerY); + rlVertex2f(centerX + sinf(DEG2RAD*i)*radiusH, centerY + cosf(DEG2RAD*i)*radiusV); + rlVertex2f(centerX + sinf(DEG2RAD*(i + 10))*radiusH, centerY + cosf(DEG2RAD*(i + 10))*radiusV); + } + rlEnd(); +} + +// Draw ellipse outline +void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color) +{ + if (rlCheckBufferLimit(2*36)) rlglDraw(); + + rlBegin(RL_LINES); + for (int i = 0; i < 360; i += 10) + { + rlColor4ub(color.r, color.g, color.b, color.a); + rlVertex2f(centerX + sinf(DEG2RAD*i)*radiusH, centerY + cosf(DEG2RAD*i)*radiusV); + rlVertex2f(centerX + sinf(DEG2RAD*(i + 10))*radiusH, centerY + cosf(DEG2RAD*(i + 10))*radiusV); + } + rlEnd(); } void DrawRing(Vector2 center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color color) |
