[rshapes] Fix drawing circle sectors
Functions that draw a sector of a circle would keep drawing segments past a full rotation, which looked bad.
This commit is contained in:
parent
079cc2df09
commit
0d9ccb8756
1 changed files with 12 additions and 0 deletions
|
|
@ -1481,6 +1481,9 @@ void DrawCircleSector(Vector2 center, float radius, float startAngle, float endA
|
||||||
endAngle = tmp;
|
endAngle = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Drawing a whole circle, things get weird without limiting the circle to 360 degrees
|
||||||
|
if (endAngle - startAngle >= 360.0f) endAngle = startAngle + 360.0f;
|
||||||
|
|
||||||
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
||||||
|
|
||||||
if (segments < minSegments)
|
if (segments < minSegments)
|
||||||
|
|
@ -1573,6 +1576,9 @@ void DrawCircleSectorLines(Vector2 center, float radius, float startAngle, float
|
||||||
endAngle = tmp;
|
endAngle = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Drawing a whole circle, things get weird without limiting the circle to 360 degrees
|
||||||
|
if (endAngle - startAngle >= 360.0f) endAngle = startAngle + 360.0f;
|
||||||
|
|
||||||
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
||||||
|
|
||||||
if (segments < minSegments)
|
if (segments < minSegments)
|
||||||
|
|
@ -1704,6 +1710,9 @@ void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startA
|
||||||
endAngle = tmp;
|
endAngle = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Drawing a whole circle, things get weird without limiting the circle to 360 degrees
|
||||||
|
if (endAngle - startAngle >= 360.0f) endAngle = startAngle + 360.0f;
|
||||||
|
|
||||||
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
||||||
|
|
||||||
if (segments < minSegments)
|
if (segments < minSegments)
|
||||||
|
|
@ -1795,6 +1804,9 @@ void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float s
|
||||||
endAngle = tmp;
|
endAngle = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Drawing a whole circle, things get weird without limiting the circle to 360 degrees
|
||||||
|
if (endAngle - startAngle >= 360.0f) endAngle = startAngle + 360.0f;
|
||||||
|
|
||||||
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
int minSegments = (int)ceilf((endAngle - startAngle)/90);
|
||||||
|
|
||||||
if (segments < minSegments)
|
if (segments < minSegments)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue