Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Vezbe_1.cpp : This file contains the 'main' function. Program execution begins and ends there.
- //
- #include "pch.h"
- #include <iostream>
- #include <GL/freeglut.h>
- void roof1(void)
- {
- // Bira se boja koja ce se koristiti u poligonu za prikaz
- glColor3f(0.91, 0.51, 0.51);
- // Crtanje poligona krece iz donjeg levog ugla
- glBegin(GL_POLYGON);
- // Na ekranu bice vidljive koordinate na intervalu 0.0 - 1.0
- glVertex3f(0.25, 0.45, 0.0); // DL
- glVertex3f(0.75, 0.45, 0.0); // DR
- glVertex3f(0.65, 0.75, 0.0); // GR
- glVertex3f(0.35, 0.75, 0.0); // GL
- glEnd();
- }
- void roof2(void)
- {
- // Sada ne zelimo da cistimo bafer, jer zelimo prikazati dva elementa
- // glClear(GL_COLOR_BUFFER_BIT);
- // Bira se boja koja ce se koristiti u poligonu za prikaz
- glColor3f(0.91, 0.91, 0.51);
- // Crtanje poligona krece iz donjeg levog ugla
- glBegin(GL_POLYGON);
- // Na ekranu bice vidljive koordinate na intervalu 0.0 - 1.0
- glVertex3f(0.45, 0.45, 1.0); // DL
- glVertex3f(0.75, 0.45, 1.0); // DR
- glVertex3f(0.65, 0.75, 0.0); // GR
- glVertex3f(0.35, 0.75, 0.0); // GL
- glEnd();
- }
- void base(void)
- {
- glColor3f(0.36, 0.9, 0.9);
- glBegin(GL_POLYGON);
- glVertex3f(0.27, 0.16, 0);
- glVertex3f(0.73, 0.16, 0);
- glVertex3f(0.73, 0.45, 0);
- glVertex3f(0.27, 0.45, 0);
- glEnd();
- }
- void door(void)
- {
- glColor3f(0.36, 0.4, 0.4);
- glBegin(GL_POLYGON);
- glVertex3f(0.30, 0.16, 0);
- glVertex3f(0.40, 0.16, 0);
- glVertex3f(0.40, 0.36, 0);
- glVertex3f(0.30, 0.36, 0);
- glEnd();
- }
- void circle(float radius)
- {
- glColor3f(0.36, 0.4, 1);
- glBegin(GL_POLYGON); // GL_LINE_LOOP
- for (int i = 0; i < 360; i++)
- {
- float degInRad = i * (3.14159 / 180);
- glVertex2f(cos(degInRad)*radius + 0.348, sin(degInRad)*radius + 0.56);
- }
- glEnd();
- }
- void display(void)
- {
- // Navodimo koji bafer zelimo ocistiti
- glClear(GL_COLOR_BUFFER_BIT);
- roof1();
- roof2();
- base();
- door();
- circle(0.036);
- // Prikaz sadrzaja bafera
- glFlush();
- }
- void init(void)
- {
- // Postavlja pozadinu ekrana
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- // Koji deo modela ce biti prikazan
- glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
- }
- int main(int argc, char* argv[])
- {
- glutInit(&argc, argv);
- // Inicijalizacija, mod za prikaz, velicina, pozicija, naziv prozora
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(250, 250);
- glutInitWindowPosition(100, 80);
- glutCreateWindow("Hello");
- init();
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment