clean code
This commit is contained in:
1 file changed
+12
-15
@@ -80,13 +80,12 @@ void draw_point(SDL_Renderer *renderer, VEC2 v)
|
|||||||
const float size = 2.0;
|
const float size = 2.0;
|
||||||
|
|
||||||
SDL_Rect point_rect;
|
SDL_Rect point_rect;
|
||||||
// Adjust x and y to center the point visually, if desired
|
|
||||||
point_rect.x = v.x - size / 2;
|
point_rect.x = v.x - size / 2;
|
||||||
point_rect.y = v.y - size / 2;
|
point_rect.y = v.y - size / 2;
|
||||||
point_rect.w = size;
|
point_rect.w = size;
|
||||||
point_rect.h = size;
|
point_rect.h = size;
|
||||||
|
|
||||||
// Draw the filled rectangle
|
|
||||||
SDL_RenderFillRect(renderer, &point_rect);
|
SDL_RenderFillRect(renderer, &point_rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,20 +94,19 @@ void draw_ellipse_points(SDL_Renderer *renderer, VEC2 *points, size_t num_points
|
|||||||
for (size_t i = 0; i < num_points; ++i)
|
for (size_t i = 0; i < num_points; ++i)
|
||||||
{
|
{
|
||||||
VEC2 a = points[i];
|
VEC2 a = points[i];
|
||||||
VEC2 b = points[(i + (size_t) sqrt(num_points)) % num_points];
|
VEC2 b = points[(i + 1) % num_points];
|
||||||
|
|
||||||
SDL_RenderDrawLine(renderer, a.x, a.y, b.x, b.y);
|
SDL_RenderDrawLine(renderer, a.x, a.y, b.x, b.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_2d_ellipse(SDL_Renderer *renderer, int x, int y, int rx, int ry) {
|
void draw_ellipse(SDL_Renderer *renderer, int x, int y, int rx, int ry, int detail)
|
||||||
// Number of points to approximate the ellipse
|
|
||||||
const int num_points = 100;
|
|
||||||
VEC2 points[num_points];
|
|
||||||
|
|
||||||
for (int i = 0; i < num_points; ++i)
|
|
||||||
{
|
{
|
||||||
float angle = 2.0f * M_PI * i / num_points;
|
VEC2 points[detail];
|
||||||
|
|
||||||
|
for (int i = 0; i < detail; ++i)
|
||||||
|
{
|
||||||
|
float angle = 2.0f * M_PI * i / detail;
|
||||||
VEC2 p = (VEC2){
|
VEC2 p = (VEC2){
|
||||||
x + (int)(rx * cosf(angle)),
|
x + (int)(rx * cosf(angle)),
|
||||||
y + (int)(ry * sinf(angle)),
|
y + (int)(ry * sinf(angle)),
|
||||||
@@ -118,11 +116,11 @@ void draw_2d_ellipse(SDL_Renderer *renderer, int x, int y, int rx, int ry) {
|
|||||||
points[i] = p;
|
points[i] = p;
|
||||||
}
|
}
|
||||||
|
|
||||||
draw_ellipse_points(renderer, points, num_points);
|
draw_ellipse_points(renderer, points, detail);
|
||||||
for (int i = 0; i < num_points; ++i)
|
for (int i = 0; i < detail; ++i)
|
||||||
{
|
{
|
||||||
VEC2 a = points[i];
|
VEC2 a = points[i];
|
||||||
VEC2 b = points[(i + 1) % (num_points)];
|
VEC2 b = points[(i + 1) % (detail)];
|
||||||
|
|
||||||
SDL_RenderDrawLine(renderer, a.x, a.y, b.x, b.y);
|
SDL_RenderDrawLine(renderer, a.x, a.y, b.x, b.y);
|
||||||
}
|
}
|
||||||
@@ -269,8 +267,7 @@ int main(void)
|
|||||||
);
|
);
|
||||||
|
|
||||||
// draw sphere
|
// draw sphere
|
||||||
// draw_circle(renderer, (VEC2){WINDOW_W/2, WINDOW_H/2}, 150);
|
// draw_ellipse(renderer, WINDOW_W/2, WINDOW_H/2, 150, 150, 500);
|
||||||
// draw_2d_ellipse(renderer, WINDOW_W/2, WINDOW_H/2, 150, 150);
|
|
||||||
|
|
||||||
VEC2 ellipse[num_sphere_vectors];
|
VEC2 ellipse[num_sphere_vectors];
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user