From bbede86d7d87fd92d2b7bd6eff9eb2bf13e8df53 Mon Sep 17 00:00:00 2001 From: Jopestpe <47086979+Jopestpe@users.noreply.github.com> Date: Thu, 2 Oct 2025 21:58:10 -0300 Subject: [PATCH] [examples] Added shapes_recursive_tree --- examples/shapes/shapes_recursive_tree.c | 98 +++++++++++++++------- examples/shapes/shapes_recursive_tree.png | Bin 13440 -> 38404 bytes 2 files changed, 66 insertions(+), 32 deletions(-) diff --git a/examples/shapes/shapes_recursive_tree.c b/examples/shapes/shapes_recursive_tree.c index c29899cc0..b81852096 100644 --- a/examples/shapes/shapes_recursive_tree.c +++ b/examples/shapes/shapes_recursive_tree.c @@ -21,27 +21,20 @@ #define RAYGUI_IMPLEMENTATION #include "raygui.h" // Required for GUI controls -float theta; -float thick = 1.0f; -float branchDecay = 0.66f; -bool bezier = false; +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +typedef struct { + Vector2 start; + float angle; + float length; +} Branch; -void Branch(Vector2 start, float length, float angle) { - length *= branchDecay; - - if (length > 2) { - Vector2 end = { - start.x + length * sinf(angle), - start.y - length * cosf(angle) - }; - - if(!bezier) DrawLineEx(start, end, thick, RED); - else DrawLineBezier(start, end, thick, RED); - - Branch(end, length, angle + theta); - Branch(end, length, angle - theta); - } -} +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +static Vector2 CalculateBranchEnd(Vector2 start, float angle, float length); +static void DrawBranch(Vector2 start, float angle, float length, float thick, bool bezier); //------------------------------------------------------------------------------------ // Program main entry point @@ -56,8 +49,12 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [shapes] example - shapes recursive tree"); Vector2 start = { (screenWidth / 2.0f) - 125, screenHeight }; - Vector2 end = { (screenWidth / 2.0f) - 125, screenHeight - 120.0f }; - float angle = 0.0f; + float angle = 45.0f; + float thick = 1.0f; + float treeDepth = 1.0f; + float branchDecay = 0.66f; + float length = 120.0f; + bool bezier = false; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -65,28 +62,52 @@ int main(void) // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { - float a = (angle / screenWidth) * 90.0f; - theta = a * (PI / 180.0f); + // Update + //---------------------------------------------------------------------------------- + float theta = angle * DEG2RAD; + int maxBranches = (int)(powf(2, treeDepth) - 1); + Branch branches[4096]; + int count = 0; + branches[count++] = (Branch){start, 0.0f, length}; + + for (int i = 0; i < count; i++) { + Branch branch = branches[i]; + if (branch.length < 2) continue; + + Vector2 end = CalculateBranchEnd(branch.start, branch.angle, branch.length); + float nextLength = branch.length * branchDecay; + + if (count < maxBranches && nextLength >= 2) { + branches[count++] = (Branch){end, branch.angle + theta, nextLength}; + branches[count++] = (Branch){end, branch.angle - theta, nextLength}; + } + } // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); - DrawLine(560, 0, 560, GetScreenHeight(), Fade(LIGHTGRAY, 0.6f)); - DrawRectangle(560, 0, GetScreenWidth() - 500, GetScreenHeight(), Fade(LIGHTGRAY, 0.3f)); + for (int i = 0; i < count; i++) { + Branch branch = branches[i]; + if (branch.length >= 2) { + DrawBranch(branch.start, branch.angle, branch.length, thick, bezier); + } + } + + DrawLine(560, 0, 560, GetScreenHeight(), (Color){ 218, 218, 218, 255 }); + DrawRectangle(560, 0, GetScreenWidth() - 500, GetScreenHeight(), (Color){ 232, 232, 232, 255 }); // Draw GUI controls //------------------------------------------------------------------------------ - GuiSliderBar((Rectangle){ 640, 40, 120, 20}, "Angle", TextFormat("%.2f", angle), &angle, 0, 1600); - GuiSliderBar((Rectangle){ 640, 70, 120, 20}, "Thick", TextFormat("%.2f", thick), &thick, 1, 8); + GuiSliderBar((Rectangle){ 640, 40, 120, 20}, "Angle", TextFormat("%.0f", angle), &angle, 0, 180); + GuiSliderBar((Rectangle){ 640, 70, 120, 20 }, "Length", TextFormat("%.0f", length), &length, 12.0f, 240.0f); GuiSliderBar((Rectangle){ 640, 100, 120, 20}, "Branch Decay", TextFormat("%.2f", branchDecay), &branchDecay, 0.1f, 0.78f); - GuiCheckBox((Rectangle){ 640, 130, 20, 20 }, "Bezier", &bezier); + GuiSliderBar((Rectangle){ 640, 130, 120, 20 }, "Tree Depth", TextFormat("%.0f", treeDepth), &treeDepth, 1.0f, 12.f); + GuiSliderBar((Rectangle){ 640, 160, 120, 20}, "Thick", TextFormat("%.0f", thick), &thick, 1, 8); + GuiCheckBox((Rectangle){ 640, 190, 20, 20 }, "Bezier", &bezier); //------------------------------------------------------------------------------ - - DrawLineEx(start, end, thick, RED); - Branch(end, 120.0f, 0.0f); DrawFPS(10, 10); @@ -100,4 +121,17 @@ int main(void) //-------------------------------------------------------------------------------------- return 0; +} + +static Vector2 CalculateBranchEnd(Vector2 start, float angle, float length) { + return (Vector2){ + start.x + length * sinf(angle), + start.y - length * cosf(angle) + }; +} + +static void DrawBranch(Vector2 start, float angle, float length, float thick, bool bezier) { + Vector2 end = CalculateBranchEnd(start, angle, length); + if (!bezier) DrawLineEx(start, end, thick, RED); + else DrawLineBezier(start, end, thick, RED); } \ No newline at end of file diff --git a/examples/shapes/shapes_recursive_tree.png b/examples/shapes/shapes_recursive_tree.png index 4a850284dd7bb5cd6103d4bbd897d472170794e1..ed7b613b0918fedcec5d78a12d203b405175062e 100644 GIT binary patch literal 38404 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 literal 13440 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