Ez a dokumentum egy előző változata!
A raylib egy egyszerű és könnyen használható C nyelvű könyvtár, amit játékfejlesztéshez és multimédiás alkalmazásokhoz készítettek.
Írjuk felül a jelenlegi main.c tartalmát az alábbi kóddal és futtassuk a programot.
#include <raylib.h>
int main() {
// Window creation
const int screenWidth = 640;
const int screenHeight = 480;
InitWindow(screenWidth, screenHeight, "raylib example");
// Initialization
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
// Main game loop
while (!WindowShouldClose()) { // Detect window close button or ESC key
// Update
// Draw
BeginDrawing();
ClearBackground(LIGHTGRAY); // Clear the background with a color
int MaxX = GetScreenWidth();
int MaxY = GetScreenHeight();
for (int i = 1; i <= 10; i++) {
Color lineColor = GetColor(i + 5); // Choose color
DrawLine(0, 0, (MaxX / 10) * i, MaxY, lineColor); // Draw line
int R = (MaxY - 10) / (2 * i); // Circle radius
DrawCircle(MaxX - R, MaxY / 2, R, lineColor); // Draw circle
// Draw ellipse
DrawEllipse(MaxX / 2, MaxY / 8, MaxX / (4 * i), MaxY / 8, lineColor);
}
EndDrawing();
}
// De-Initialization
CloseWindow(); // Close window and OpenGL context
return 0;
}
#include <raylib.h>
#include <math.h>
int main() {
// Initialization
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "Sinus Function Plot - raylib");
SetTargetFPS(60); // Set FPS
while (!WindowShouldClose()) { // Main game loop
// Update
// Draw
BeginDrawing();
ClearBackground(RAYWHITE); // Clear the background
// Draw the axes
Vector2 origin = { (float)screenWidth/2, (float)screenHeight/2 };
DrawLine(origin.x, 0, origin.x, screenHeight, BLACK); // Y-axis
DrawLine(0, origin.y, screenWidth, origin.y, BLACK); // X-axis
// Draw the sine function
for(int i = -screenWidth/2; i < screenWidth/2; i++) {
// Calculating points
float x1 = (float)i;
float y1 = sinf(x1 * DEG2RAD) * 100; // Scale the sine wave
float x2 = x1 + 1;
float y2 = sinf(x2 * DEG2RAD) * 100; // Scale the sine wave
// Transform points to screen space
x1 += origin.x;
y1 = origin.y - y1; // Invert y1 to match screen coordinates
x2 += origin.x;
y2 = origin.y - y2; // Invert y2 to match screen coordinates
// Draw line segment
DrawLine(x1, y1, x2, y2, BLUE);
}
DrawText("Sinus Function Plot", 10, 10, 20, BLACK); // Title
DrawText("X-Axis", screenWidth - 50, origin.y + 10, 10, BLACK); // X-axis label
DrawText("Y-Axis", origin.x + 10, 10, 10, BLACK); // Y-axis label
EndDrawing();
}
CloseWindow();
return 0;
}