123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //
- // Draw a Filled circle using brute force.
- //
- #include "raylib.h"
- void bruteforcecircle(int xc, int yc, int r,Color col);
- int main(void)
- {
- // Initialization
- //--------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 450;
- InitWindow(screenWidth, screenHeight, "raylib example.");
-
- SetTargetFPS(10); // 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(RAYWHITE);
- for(int i=0;i<20;i++){
- int x = GetRandomValue(0,screenWidth);
- int y = GetRandomValue(0,screenHeight);
- int r = GetRandomValue(10,100);
- bruteforcecircle(x,y,r,RED);
- }
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
- // De-Initialization
- //--------------------------------------------------------------------------------------
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
- return 0;
- }
- void bruteforcecircle(int xc, int yc, int radius,Color col) {
- // for(int y=-radius; y<=radius; y++){
- // for(int x=-radius; x<=radius; x++){
- // if(x*x+y*y <= radius*radius)
- // DrawPixel(xc+x, yc+y,col);
- // }}
- // Single Loop version ; Said to be 2x speed than double loop method.
- int r2 = radius * radius;
- int area = r2 << 2;
- int rr = radius << 1;
- for (int i = 0; i < area; i++)
- {
- int tx = (i % rr) - radius;
- int ty = (i / rr) - radius;
- if (tx * tx + ty * ty <= r2)
- DrawPixel(xc + tx, yc + ty, col);
- }
- }
|