#include <windows.h> // Windows的頭文件
#include <gl\gl.h> // OpenGL32庫的頭文件
#include <gl\glu.h> // GLu32庫的頭文件
#include <gl\glaux.h> // GLaux庫的頭文件
#include <gl\glut.h> // Glut庫頭文件
#pragma comment( lib, "opengl32.lib") // OpenGL32連接庫
#pragma comment( lib, "glu32.lib") // GLu32連接庫
#pragma comment( lib, "glaux.lib") // GLaux連接庫
#pragma comment( lib, "glut.lib") // Glut鏈接庫
int screenWidth=640;
int screenHeight=480;
void myInit()
{
glClearColor(1.0,1.0,1.0,0.0); //設置背景顏色為亮白
glColor3f(0.0f,0.0f,0.0f); //設置繪圖顏色為黑色
glPointSize(4.0); //設置點的大小為4*4像素
glMatrixMode(GL_PROJECTION); //設置合適的矩陣
glLoadIdentity();
gluOrtho2D(0.0,screenWidth,0.0,screenHeight);
}
void drawDot(int x,int y)
{
glBegin(GL_POINTS);
glVertex2i(x,y); //畫一些點
glEnd();
}
void myMouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN)
{
if(button==GLUT_LEFT_BUTTON)
{
drawDot(x,screenHeight-y);
glFlush();
}
else if(button==GLUT_RIGHT_BUTTON)
{
glClearColor(1.0f,0.0f,0.0f,0.0f);
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
}
return;
}
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT); //清屏
glBegin(GL_POINTS);
glVertex2i(100,50); //畫一些點
glVertex2i(100,130);
glVertex2i(150,130);
glVertex2i(320,240);
glEnd();
glFlush(); //送所有輸出到顯示設備
}
void main(int argc, char **argv)
{
glutInit(&argc,argv); //初始化工具包
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//設置顯示模式
glutInitWindowSize(640,480); //設置窗口大小
glutInitWindowPosition(100,150); //設置窗口在屏幕上的位置
glutCreateWindow("my first attempt"); //打開屏幕窗口
//注冊回調函數
glutDisplayFunc(myDisplay);
glutMouseFunc(myMouse);
myInit();
glutMainLoop(); //進入循環
}