#include <GL/glut.h>
GLsizei winWidth = 600, winHeight = 500; // Initial display window size.
GLint dataValue [4] = {0, 10, 50, 200};
GLint dert_x = 50,dert_y = 100;
GLint cos_angle = 0,sin_angle = 1; //旋转角度的sin、cos值
void init (void)
{
glClearColor (1.0, 1.0, 1.0, 1.0); // White display window.
glMatrixMode (GL_PROJECTION);
gluOrtho2D (0.0, 600.0, 0.0, 500.0);
}
void lineGraph (void)
{
GLint k;
GLint x = 0; // Initialize x position for chart.
GLint Sx = 2,Sy = 1; //Scale times
GLint xf = 0,yf = 0; //参考点坐标
glClear (GL_COLOR_BUFFER_BIT); // Clear display window.
glColor3f (1.0, 0.0, 0.0); // Set line color to red.
glBegin (GL_LINE_STRIP); // Plot data as a polyline.
for (k = 0; k < 4; k++){
glVertex2i (x + k*50, dataValue [k]);
}
glVertex2i (x, dataValue [0]);
glEnd ( );
//平移
glColor3f (0.0, 0.0, 1.0); // Set line color to blue.
glBegin (GL_LINE_STRIP); // Plot data as a polyline.
for (k = 0; k < 4; k++){
glVertex2i (x + k*50 + dert_x, dataValue [k] + dert_y);
}
glVertex2i (x + dert_x, dataValue [0] + dert_y);
glEnd ( );
//缩放
glColor3f (0.0, 1.0, 0.0); // Set line color
glBegin (GL_LINE_STRIP); // Plot data as a polyline.
for (k = 0; k < 4; k++){
glVertex2i (((x + k*50) - xf) * Sx + xf, (dataValue [k] - yf)*Sy + yf);
}
glVertex2i (x, dataValue [0]);
glEnd ( );
//旋转
xf = 150,yf = 200; //参考点坐标
glColor3f (0.0, 0.0, 1.0); // Set line color
glBegin (GL_LINE_STRIP); // Plot data as a polyline.
for (k = 0; k < 4; k++){
glVertex2i (((x + k*50) - xf) * cos_angle + xf - (dataValue [k] - yf)*sin_angle,
(dataValue [k] - yf)*cos_angle + yf + ((x + k*50) - xf) * sin_angle
);
}
glVertex2i (((x + 0*50) - xf) * cos_angle + xf - (dataValue [0] - yf)*sin_angle,
(dataValue [0] - yf)*cos_angle + yf + ((x + 0*50) - xf) * sin_angle
);
glEnd ( );
glFlush ( );
}
void main (int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition (100, 100);
glutInitWindowSize (winWidth, winHeight);
glutCreateWindow ("Line Chart Data Plot");
init ( );
glutDisplayFunc (lineGraph);
//glutReshapeFunc (winReshapeFcn);
glutMainLoop ( );
}
图形的几何变换
最新推荐文章于 2021-08-08 21:38:21 发布