muszaki_informatika:raylib_vis_functions
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
muszaki_informatika:raylib_vis_functions [2024/01/28 17:41] – knehez | muszaki_informatika:raylib_vis_functions [2025/03/12 18:42] (current) – [Szinusz függvény ábrázolása 2D-ben] knehez | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Szinusz függvény ábrázolása 2D-ben | + | ==== 2D alap kiinduló kód ==== |
+ | A következő programváz jó kiinduló pont a 2D grafikai fejlesztésekhez. | ||
+ | <sxh c> | ||
+ | #include < | ||
+ | |||
+ | int main() { | ||
+ | // Initialization | ||
+ | const int screenWidth = 800; | ||
+ | const int screenHeight = 450; | ||
+ | InitWindow(screenWidth, | ||
+ | |||
+ | SetTargetFPS(60); | ||
+ | |||
+ | while (!WindowShouldClose()) { | ||
+ | BeginDrawing(); | ||
+ | |||
+ | ClearBackground(RAYWHITE); | ||
+ | |||
+ | /// ide jön a saját kódunk | ||
+ | |||
+ | EndDrawing(); | ||
+ | } | ||
+ | CloseWindow(); | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | ==== Szinusz függvény ábrázolása 2D-ben ==== | ||
Az alábbi rövid példa egy szinusz függvény ábrázolását mutatja. | Az alábbi rövid példa egy szinusz függvény ábrázolását mutatja. | ||
Line 69: | Line 95: | ||
A 34. sortól azért számoljuk át az értékeket, | A 34. sortól azért számoljuk át az értékeket, | ||
- | === Térbeli ábrázolás === | + | ==== Egyszerűsített függvényábrázolás pixelekkel ==== |
+ | |||
+ | Próbáljuk meg pixelenként kirajzolni a függvényt: | ||
+ | |||
+ | <sxh c> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main() { | ||
+ | const int screenWidth = 800; | ||
+ | const int screenHeight = 450; | ||
+ | InitWindow(screenWidth, | ||
+ | |||
+ | SetTargetFPS(60); | ||
+ | |||
+ | Vector2 origin = {(float)screenWidth / 2, (float)screenHeight / 2}; | ||
+ | |||
+ | while (!WindowShouldClose()) { | ||
+ | BeginDrawing(); | ||
+ | ClearBackground(RAYWHITE); | ||
+ | |||
+ | DrawLine(origin.x, | ||
+ | DrawLine(0, origin.y, screenWidth, | ||
+ | |||
+ | for (int x = 0; x < screenWidth; | ||
+ | float y = origin.y - sinf((x - origin.x) * DEG2RAD) * 100; | ||
+ | DrawPixel(x, | ||
+ | } | ||
+ | |||
+ | DrawText(" | ||
+ | DrawText(" | ||
+ | DrawText(" | ||
+ | |||
+ | EndDrawing(); | ||
+ | } | ||
+ | |||
+ | CloseWindow(); | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | A módszer lényege a középen lévő for ciklus: | ||
+ | <sxh c> | ||
+ | for (int x = 0; x < screenWidth; | ||
+ | float y = origin.y - sinf((x - origin.x) * DEG2RAD) * 100; | ||
+ | DrawPixel(x, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Most a szinusz függvényt jelentettük meg, ami c-ben a '' | ||
+ | |||
+ | A módszer hátránya: amennyiben a függvény függőlegesen sokat változik, ameddig 1 pixellel jobbra lépünk akkor az eredmény pontozott lesz, nem lesz összefüggő vonal. Próbáljuk ki a **tanf()** függvénnyel. | ||
+ | |||
+ | megjegyzés: | ||
+ | |||
+ | ===== Térbeli ábrázolás | ||
A következő példa egy kétváltozós függvényt **sinf(sqrtf(x*x + y*y))** térben ábrázol | A következő példa egy kétváltozós függvényt **sinf(sqrtf(x*x + y*y))** térben ábrázol |
muszaki_informatika/raylib_vis_functions.1706463687.txt.gz · Last modified: 2024/01/28 17:41 by knehez