==== Kördiagram ===== feladat: Készítsen egy C programot, amely egy kördiagramot jelenít meg az egyes bevételi források százalékos megoszlásával egy képzeletbeli vállalat esetén. A kördiagram mellett egy összefoglaló (legend) is szerepeljen, amely az egyes bevételi forrásokat színes téglalapokkal és címkékkel azonosítja. {{:tanszek:oktatas:muszaki_informatika:pasted:20240228-181425.png}} #include "raylib.h" int main() { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "Kordiagram"); SetTargetFPS(60); // Kördiagram adatok float szazalekok[] = {30.0f, 25.0f, 20.0f, 15.0f, 10.0f}; // Összesen 100% Color szinek[] = {RED, GREEN, BLUE, ORANGE, PURPLE}; // Minden szelethez egy szín const char *cimkek[] = {"Termekertekesites", "Szolgaltatasok", "Licencdijak", "Befektetesek", "Egyeb"}; while (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); // Kördiagram középpontja és sugara Vector2 kozep = {screenWidth / 2.0f, screenHeight / 2.0f}; float sugar = 180.0f; float kezdoSzog = 90.0f; for (int i = 0; i < 5; i++) { float szog = 360.0f * (szazalekok[i] / 100.0f); // Szelet rajzolása DrawCircleSector(kozep, sugar, kezdoSzog - szog, kezdoSzog, 100, szinek[i]); DrawCircleSectorLines(kozep, sugar, kezdoSzog - szog, kezdoSzog, 100, DARKGRAY); kezdoSzog -= szog; } // Osszefoglalo rajzolása (legends) int legendX = screenWidth - 200; // X pozíció int legendY = 50; // Kezdő Y pozíciój int magassag = 20; // Minden sor magassága for (int i = 0; i < 5; i++) { // Szín téglalap rajzolása DrawRectangle(legendX, legendY + i * (magassag + 5), 20, magassag, szinek[i]); // Címke rajzolása DrawText(cimkek[i], legendX + 25, legendY + i * (magassag + 5), 10, BLACK); } EndDrawing(); } CloseWindow(); return 0; } ===== Oszlopdiagram ===== {{:tanszek:oktatas:muszaki_informatika:pasted:20240228-181856.png}} #include int main() { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "Oszlopdiagram"); SetTargetFPS(60); // Oszlopdiagram adatok float szazalekok[] = {30.0f, 25.0f, 20.0f, 15.0f, 10.0f}; // Összesen 100% Color szinek[] = {RED, GREEN, BLUE, ORANGE, PURPLE}; // Minden szelethez egy szín const char *cimkek[] = {"Termekertekesites", "Szolgaltatasok", "Licencdijak", "Befektetesek", "Egyeb"}; // Oszlopok beállításai int oszlopSzelesseg = 50; int oszlopKoz = 20; int diagramX = 100; // Diagram kezdő X pozíciója int alapMagassag = screenHeight - 100; // Az oszlopok alapja while (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); for (int i = 0; i < 5; i++) { // Oszlop magasságának és pozíciójának kiszámítása float oszlopMagassag = (szazalekok[i] / 100.0f) * (screenHeight - 200); int oszlopX = diagramX + i * (oszlopSzelesseg + oszlopKoz); // Oszlop rajzolása DrawRectangle(oszlopX, alapMagassag - oszlopMagassag, oszlopSzelesseg, oszlopMagassag, szinek[i]); } // összefoglaló (legend) int legendX = screenWidth - 200; // X pozíció int legendY = 50; // Kezdő Y pozíció int magassag = 20; // Minden sor magassága for (int i = 0; i < 5; i++) { // Szín téglalap rajzolása DrawRectangle(legendX, legendY + i * (magassag + 5), 20, magassag, szinek[i]); // Címke rajzolása DrawText(cimkek[i], legendX + 25, legendY + i * (magassag + 5), 10, BLACK); } EndDrawing(); } CloseWindow(); return 0; }