Mercurial > public > algo-animator
changeset 3:e4003f606e07
draw multiple rectangles with loop
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Mon, 12 Jun 2023 20:13:04 +0100 |
parents | ea3c427d922d |
children | 035d3880da04 |
files | 34 main.c |
diffstat | 2 files changed, 80 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/34 Mon Jun 12 20:13:04 2023 +0100 @@ -0,0 +1,55 @@ +#include <stdio.h> +#include <GL/glut.h> + + +#define HEIGHT 1080 +#define WIDTH 1920 + + +void setup() { + + // Set background dark + glClearColor(0.0, 0.0, 0.0, 1.0); + + // Set point color and size to 1 pixel + glColor3f(0.0, 1.0, 0.0); + glPointSize(5.0); + + // Matrix projection + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + + // Set the coordinates to be used with the viewport + gluOrtho2D(0, WIDTH, HEIGHT, 0); + + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} + + +void display() { + glClear(GL_COLOR_BUFFER_BIT); + glBegin(GL_QUADS); + glVertex2f(100.0f, 100.0f); // Bottom-left vertex of first rectangle + glVertex2f(200.0f, 100.0f); // Bottom-right vertex of first rectangle + glVertex2f(200.0f, 200.0f); // Top-right vertex of first rectangle + glVertex2f(100.0f, 200.0f); // Top-left vertex of first rectangle + glEnd(); + glFlush(); +} + + +int main(int argc, char** argv) { + + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(WIDTH, HEIGHT); + glutCreateWindow("OpenGL Window"); + setup(); + glutDisplayFunc(display); + glutMainLoop(); + + return 0; +}
--- a/main.c Mon Jun 12 18:45:30 2023 +0100 +++ b/main.c Mon Jun 12 20:13:04 2023 +0100 @@ -20,18 +20,36 @@ glLoadIdentity(); // Set the coordinates to be used with the viewport - gluOrtho2D(-300, 300, 300, -300); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - + gluOrtho2D(0, WIDTH, HEIGHT, 0); } void display() { glClear(GL_COLOR_BUFFER_BIT); - glRectf(100.0f, 100.0f, 200.0f, 200.0f); - // glVertex2i(1920/2, 1080/2); + glBegin(GL_QUADS); + /* + glVertex2f(100.0, 100.0); // Top left + glVertex2f(150.0, 100.0); // Top right + glVertex2f(150.0, 300.0); // Bottom right + glVertex2f(100.0, 300.0); // Bottom left + + glVertex2f(160.0, 100.0); + glVertex2f(210.0, 100.0); + glVertex2f(210.0, 300.0); + glVertex2d(160.0, 300.0); + */ + + float rect_width = 5.0; + float space = 10.0; + + for (float pos_x = 100.0; pos_x < 500.0; pos_x += 10.0) { + glVertex2f(pos_x, 100.0); + glVertex2f(pos_x + rect_width, 100.0); + glVertex2f(pos_x + rect_width, 300.0); + glVertex2d(pos_x, 300.0); + } + + glEnd(); glFlush(); }