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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

FTHha 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 x{Vx>kChw^5Kj^*<;2QA-P literal 13440 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 TbaU`uiYRo?8EWRAvAy$Ow;RBh