From 156f5048c63a393b8f4b4fe0d85784dcf4e34b50 Mon Sep 17 00:00:00 2001 From: Jopestpe <47086979+Jopestpe@users.noreply.github.com> Date: Fri, 17 Oct 2025 15:08:07 -0300 Subject: [PATCH] Fix MSVC compilation --- examples/shapes/shapes_math_sine_cosine.c | 36 ++++++++++++----------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/examples/shapes/shapes_math_sine_cosine.c b/examples/shapes/shapes_math_sine_cosine.c index 15a41c584..f61d4f548 100644 --- a/examples/shapes/shapes_math_sine_cosine.c +++ b/examples/shapes/shapes_math_sine_cosine.c @@ -22,6 +22,9 @@ #define RAYGUI_IMPLEMENTATION #include "raygui.h" // Required for GUI controls +// Wave points for sine/cosine visualization +#define WAVE_POINTS 36 + //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ @@ -35,23 +38,22 @@ int main(void) SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "raylib [shapes] example - math sine cosine"); - const int wavePoints = 36; - Vector2 sinePoints[wavePoints]; - Vector2 cosPoints[wavePoints]; + Vector2 sinePoints[WAVE_POINTS]; + Vector2 cosPoints[WAVE_POINTS]; Vector2 center = { (screenWidth/2.0f) - 30.f, screenHeight/2.0f }; Rectangle start = { 20.f, screenHeight - 120.f , 200.0f, 100.0f}; float radius = 130.0f; float angle = 0.0f; bool pause = false; - for (int i = 0; i < wavePoints; i++) + for (int i = 0; i < WAVE_POINTS; i++) { - float t = i/(float)(wavePoints - 1); + float t = i/(float)(WAVE_POINTS - 1); float currentAngle = t*360.0f*DEG2RAD; sinePoints[i] = (Vector2){ start.x + t*start.width, start.y + start.height/2.0f - sinf(currentAngle)*(start.height/2.0f) }; cosPoints[i] = (Vector2){ start.x + t*start.width, start.y + start.height/2.0f - cosf(currentAngle)*(start.height/2.0f) }; } - + SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -63,15 +65,15 @@ int main(void) float angleRad = angle*DEG2RAD; float cosRad = cosf(angleRad); float sinRad = sinf(angleRad); - + Vector2 point = { center.x + cosRad*radius, center.y - sinRad*radius }; Vector2 limitMin = { center.x - radius, center.y - radius }; Vector2 limitMax = { center.x + radius, center.y + radius }; - + float complementary = 90.0f - angle; float supplementary = 180.0f - angle; float explementary = 360.0f - angle; - + float tangent = Clamp(tanf(angleRad), -10.0f, 10.0f); float cotangent = (fabsf(tangent) > 0.001f) ? Clamp(1.0f/tangent, -radius, radius) : 0.0f; Vector2 tangentPoint = { center.x + radius, center.y - tangent*radius }; @@ -79,7 +81,7 @@ int main(void) angle = Wrap(angle + (!pause ? 1.0f : 0.0f), 0.0f, 360.0f); //---------------------------------------------------------------------------------- - + // Draw //---------------------------------------------------------------------------------- BeginDrawing(); @@ -88,11 +90,11 @@ int main(void) // Cotangent (orange) DrawLineEx((Vector2){ center.x , limitMin.y }, (Vector2){ cotangentPoint.x, limitMin.y }, 2.0f, ORANGE); DrawLineDashed(center, cotangentPoint, 10.0f, 4.0f, ORANGE); - + // Side background DrawLine(580, 0, 580, GetScreenHeight(), (Color){ 218, 218, 218, 255 }); DrawRectangle(580, 0, GetScreenWidth(), GetScreenHeight(), (Color){ 232, 232, 232, 255 }); - + // Base circle and axes DrawCircleLinesV(center, radius, GRAY); DrawLineEx((Vector2){ center.x, limitMin.y }, (Vector2){ center.x, limitMax.y }, 1.0f, GRAY); @@ -115,15 +117,15 @@ int main(void) DrawLineDashed((Vector2){ point.x, center.y }, (Vector2){ point.x, point.y }, 10.0f, 4.0f, RED); DrawText(TextFormat("Sine %.2f", sinRad), 640, 190, 6, RED); DrawCircleV((Vector2){ start.x + (angle/360.0f)*start.width, start.y + ((-sinRad + 1)*start.height/2.0f) }, 4.0f, RED); - DrawSplineLinear(sinePoints, wavePoints, 1.0f, RED); - + DrawSplineLinear(sinePoints, WAVE_POINTS, 1.0f, RED); + // Cosine (blue - horizontal) DrawLineEx((Vector2){ center.x, center.y }, (Vector2){ point.x, center.y }, 2.0f, BLUE); DrawLineDashed((Vector2){ center.x , point.y }, (Vector2){ point.x, point.y }, 10.0f, 4.0f, BLUE); DrawText(TextFormat("Cosine %.2f", cosRad), 640, 210, 6, BLUE); DrawCircleV((Vector2){ start.x + (angle/360.0f)*start.width, start.y + ((-cosRad + 1)*start.height/2.0f) }, 4.0f, BLUE); - DrawSplineLinear(cosPoints, wavePoints, 1.0f, BLUE); - + DrawSplineLinear(cosPoints, WAVE_POINTS, 1.0f, BLUE); + // Tangent (purple) DrawLineEx((Vector2){ limitMax.x , center.y }, (Vector2){ limitMax.x, tangentPoint.y }, 2.0f, PURPLE); DrawLineDashed(center, tangentPoint, 10.0f, 4.0f, PURPLE); @@ -160,7 +162,7 @@ int main(void) GuiGroupBox((Rectangle){ 620, 110, 140, 170}, "Angle Values"); //------------------------------------------------------------------------------ DrawFPS(10, 10); - + EndDrawing(); //---------------------------------------------------------------------------------- }