From 98bc42be7da6082c8023689b9aabd9196244a489 Mon Sep 17 00:00:00 2001 From: Nikola Petrov Date: Tue, 3 Feb 2026 15:25:15 +0100 Subject: [PATCH] Add slike to random --- CMakeLists.txt | 61 ++++++++++----------- random/slike.cpp | 140 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+), 31 deletions(-) create mode 100644 random/slike.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b96e61..53b146e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,11 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) # set(CMAKE_VERBOSE_MAKEFILE ON) add_compile_options(-ggdb) -include_directories(external/include/) +include_directories( + external/include + shared/inc +) + link_libraries( ${CMAKE_SOURCE_DIR}/external/libimgui.a ${CMAKE_SOURCE_DIR}/external/libraylib.a @@ -18,50 +22,45 @@ link_libraries( m ) +add_library(shared STATIC + shared/src/canvas/BackGround.cpp + shared/src/canvas/BackGroundColors.cpp + shared/src/canvas/Canvas.cpp + shared/src/canvas/Tree.cpp + shared/src/values/Dna.cpp + shared/src/values/DnaManager.cpp + shared/src/values/mrand.cpp + shared/src/values/Similarity.cpp + shared/src/TcpSocket.cpp + shared/src/sql.cpp +) + add_executable(app app/src/main.cpp app/src/App.cpp app/src/DnaStore.cpp app/src/sys.cpp - shared/src/canvas/BackGround.cpp - shared/src/canvas/BackGroundColors.cpp - shared/src/canvas/Canvas.cpp - shared/src/canvas/Tree.cpp - shared/src/values/Dna.cpp - shared/src/values/DnaManager.cpp - shared/src/values/mrand.cpp - shared/src/values/Similarity.cpp - shared/src/TcpSocket.cpp ) -# Add include directories -target_include_directories(app PRIVATE app/inc shared/inc ) +target_include_directories(app PRIVATE app/inc) +target_link_libraries(app PRIVATE shared) add_executable(server server/src/server.cpp server/src/checker.cpp - shared/src/sql.cpp - shared/src/TcpSocket.cpp - shared/src/values/Dna.cpp - shared/src/values/DnaManager.cpp - shared/src/values/mrand.cpp ) -# Add include directories -target_include_directories(server PRIVATE server/inc shared/inc) +target_include_directories(server PRIVATE server/inc) +target_link_libraries(server PRIVATE shared) add_executable(view view/src/main.cpp view/src/Vapp.cpp - shared/src/canvas/BackGround.cpp - shared/src/canvas/BackGroundColors.cpp - shared/src/canvas/Canvas.cpp - shared/src/canvas/Tree.cpp - shared/src/values/Dna.cpp - shared/src/values/DnaManager.cpp - shared/src/values/mrand.cpp - shared/src/values/Similarity.cpp - - shared/src/sql.cpp ) -# Add include directories -target_include_directories(view PRIVATE view/inc shared/inc) \ No newline at end of file +target_include_directories(view PRIVATE view/inc) +target_link_libraries(view PRIVATE shared) + + +add_executable(slike + random/slike.cpp +) +target_link_libraries(slike PRIVATE shared) \ No newline at end of file diff --git a/random/slike.cpp b/random/slike.cpp new file mode 100644 index 0000000..11edfd2 --- /dev/null +++ b/random/slike.cpp @@ -0,0 +1,140 @@ +#include +#include +#include +#include + +float len = 300; +float angleD = 100; +float angleR = (angleD * PI) / 180; // radian +Vector2 start = {250, 400}; +Vector2 end = {250, start.y - len}; +Vector2 end_kot = {}; +float radius = 20; +float radiusS = 80; +float radiusE = 60; +Color colorS = RED; +Color colorE = GREEN; + +typedef void (*slika)(); + +Vector2 tstart = {10, 10}; +int tsize = 30; + +int idx = 0; + +std::vector v_slik = { + []() + { + DrawText("Zacetna tocka", tstart.x, tstart.y, tsize, BLACK); + DrawCircleV(start, radius, BLACK); + }, + + []() + { + DrawText("Dolzina", tstart.x, tstart.y, tsize, BLACK); + DrawCircleV(start, radius, BLACK); + DrawLineEx(start, end, 10, BLACK); + }, + + []() + { + DrawText("Kot in Koncna tocka", tstart.x, tstart.y, tsize, BLACK); + DrawCircleV(start, radius, BLACK); + DrawLineEx(start, end_kot, 10, BLACK); + DrawCircleV(end_kot, radius, BLACK); + DrawCircleSectorLines(start, len / 3, 360 - angleD, 360, 30, BLACK); + }, + + []() + { + DrawText("Zacetna debelina", tstart.x, tstart.y, tsize, BLACK); + DrawCircleV(start, radius, BLACK); + DrawLineEx(start, end_kot, 10, BLACK); + DrawCircleV(end_kot, radius, BLACK); + DrawCircleLinesV(start, radiusS, BLACK); + }, + + []() + { + DrawText("Koncna debelina", tstart.x, tstart.y, tsize, BLACK); + DrawCircleV(start, radius, BLACK); + DrawLineEx(start, end_kot, 10, BLACK); + DrawCircleV(end_kot, radius, BLACK); + DrawCircleLinesV(start, radiusS, BLACK); + DrawCircleLinesV(end_kot, radiusE, BLACK); + }, + + []() + { + DrawText("Zacetna barva", tstart.x, tstart.y, tsize, BLACK); + DrawLineEx(start, end_kot, 10, BLACK); + DrawCircleV(end_kot, radius, BLACK); + DrawCircleV(start, radiusS, colorS); + DrawCircleLinesV(end_kot, radiusE, BLACK); + }, + + []() + { + DrawText("Koncna barva", tstart.x, tstart.y, tsize, BLACK); + DrawLineEx(start, end_kot, 10, BLACK); + DrawCircleV(start, radiusS, colorS); + DrawCircleV(end_kot, radiusE, colorE); + }, + + []() + { + DrawText("Veja", tstart.x, tstart.y, tsize, BLACK); + float fstep = 0.05; + for (float i = 0; i < 1.05; i += fstep) + { + Vector2 point = Vector2Lerp(start, end_kot, i); + Color color = ColorLerp(colorS, colorE, i); + int size = Lerp(radiusS, radiusE, i); + DrawCircleV(point, size, color); + } + } + + }; + +int main(int argc, char *argv[]) +{ + int screenWidth = 500; + int screenHeight = 500; + + float ny = len * sin(angleR); + float nx = len * cos(angleR); + end_kot.x = start.x + nx; + end_kot.y = start.y - ny; + + InitWindow(screenWidth, screenHeight, "Slike"); + SetTargetFPS(60); + + while (!WindowShouldClose()) + { + BeginDrawing(); + if (IsKeyPressed(KEY_S)) + { + TakeScreenshot(TextFormat("slika%.2d.png", idx)); + } + if (IsKeyPressed(KEY_N)) + { + idx++; + if (idx >= v_slik.size()) + idx = v_slik.size() - 1; + } + if (IsKeyPressed(KEY_P)) + { + idx--; + if (idx < 0) + idx = 0; + } + ClearBackground(WHITE); + v_slik[idx](); + + EndDrawing(); + } + + + CloseWindow(); + return 0; +} \ No newline at end of file