#include<windows.h>
#include<math.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#include <gl/Glut.h>
#include <fstream>
#include <iostream>
using namespace std;
void myDisplay(void);
void myInit(void);
void drawPolyLineFile(char *fileName);
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top);
const GLint screenWidth = 640;
const GLint screenHeight = 440;
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,150);
glutCreateWindow("Dinosaur");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(left,right,botton,top);
}
void drawPolyLineFile(char *fileName){
fstream inStream;
inStream.open(fileName);
if (inStream.fail())
{
return;
}
//file open succeed
GLint numPolys, numLines, x, y;
inStream>>numPolys;
for(int j=0;j<numPolys;j++){
inStream>>numLines;
glBegin(GL_LINE_STRIP);
for(int i=0;i<numLines;++i){
inStream>>x>>y;
glVertex2i(x,y);
}
glEnd();
}
glFlush();
cout<<"file opened"<<endl;
inStream.close();
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
for(int i =0; i < 10; i ++){
for ( int j = 0; j < 10; j++)
{
if ((i+j)%2 == 0)
{
setWindow(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);
}
else{//颠倒 左右下上 ==》 左右上下
setWindow(0.0,(GLdouble)screenWidth,(GLdouble)screenHeight,0.0);
}
glViewport(i*64,j*44,64,44);
drawPolyLineFile("D:\\dino.dat");
}
}
}
void myInit(void){
glClearColor(1.0,1.0,1.0,0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glPointSize(1.0);
#include<math.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#include <gl/Glut.h>
#include <fstream>
#include <iostream>
using namespace std;
void myDisplay(void);
void myInit(void);
void drawPolyLineFile(char *fileName);
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top);
const GLint screenWidth = 640;
const GLint screenHeight = 440;
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,150);
glutCreateWindow("Dinosaur");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(left,right,botton,top);
}
void drawPolyLineFile(char *fileName){
fstream inStream;
inStream.open(fileName);
if (inStream.fail())
{
return;
}
//file open succeed
GLint numPolys, numLines, x, y;
inStream>>numPolys;
for(int j=0;j<numPolys;j++){
inStream>>numLines;
glBegin(GL_LINE_STRIP);
for(int i=0;i<numLines;++i){
inStream>>x>>y;
glVertex2i(x,y);
}
glEnd();
}
glFlush();
cout<<"file opened"<<endl;
inStream.close();
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
for(int i =0; i < 10; i ++){
for ( int j = 0; j < 10; j++)
{
if ((i+j)%2 == 0)
{
setWindow(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);
}
else{//颠倒 左右下上 ==》 左右上下
setWindow(0.0,(GLdouble)screenWidth,(GLdouble)screenHeight,0.0);
}
glViewport(i*64,j*44,64,44);
drawPolyLineFile("D:\\dino.dat");
}
}
}
void myInit(void){
glClearColor(1.0,1.0,1.0,0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glPointSize(1.0);
}