hello
🧩 Syntax:
#include<GL/glut.h>
#include<GL/GL.h>
#include<GL/GLU.h>
#include<math.h>
using namespace std;
int flag = 0;
float fx = 40, fy = 50;
float theta = 30;
// p0 p1 p2 p3 p4 p5 p6 p7 p8
float p[9][2] = { {20,40},{20,20},{30,20},{50,20},{60,20},{30,30},{50,30},{40,50},{60,40}, };
void my_init()
{
glMatrixMode(GL_PROJECTION_MATRIX);
glLoadIdentity();
gluOrtho2D(0, 100, 0, 100);
glMatrixMode(GL_MODELVIEW);
}
void draw_house(float m[9][2])
{
glColor3f(1, 0, 0);
glBegin(GL_LINE_LOOP);
glVertex2fv(m[0]);
glVertex2fv(m[1]);
glVertex2fv(m[4]);
glVertex2fv(m[8]);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2fv(m[2]);
glVertex2fv(m[5]);
glVertex2fv(m[6]);
glVertex2fv(m[3]);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2fv(m[0]);
glVertex2fv(m[7]);
glVertex2fv(m[8]);
glEnd();
}
void disp()
{
glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);
/*
if (flag == 0)
{
draw_house(p);
flag = 1;
glFlush();
}
*/
float r[9][2];
float pi = 3.14 / 180;
for (int i = 0; i < 9; i++)
{
int x = p[i][0];
int y = p[i][1];
float xa = x * cos(theta*pi) - y * sin(theta*pi) + fx * (1 - cos(theta*pi)) + sin(theta*pi)*fy;
float ya = x * sin(theta*pi) + y * sin(theta*pi) + fy * (1 - cos(theta*pi)) - sin(theta*pi)*fx;
r[i][0] = xa;
r[i][1] = ya;
// cout << r[i][0] << r[i][1];
}
draw_house(p);
draw_house(r);
glFlush();
}
int main()
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutCreateWindow("Hello");
my_init();
glutDisplayFunc(disp);
glutMainLoop();
}