opengl练习之绘制任意大小的矩形


要求:实现用鼠标绘制任意大小的矩形,单击鼠标左键绘图,点击右键结束绘图。

这个程序类似我上一篇博文写的程序。大家可以跟上一个对照一下,会发现很多代码都是相同的。

#include 
#include 
using namespace std;
int winWidth = 400, winHeight = 300;
//定义变量
int flag = 0;
int n = 0;
int tempX, tempY;


struct RectfNode {  
    int x1;  
    int y1;  
    int x2;  
    int y2;  
}Rect[100];  


void Initial(void){
	glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
}

void ChangeSize(int w, int h){
	winWidth = w;
	winHeight = h;
	glViewport(0,0,w,h);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluOrtho2D(0.0, winWidth, 0.0, winHeight);
}

void Display(void){
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(1.0f, 0.0f, 0.0f);
	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); //线性模式画图  
	int i = 0;
	//绘制矩形
	for(i = 0; i < n; i++){
		//cout<


其实,绘制矩形还有一种方式,就是我注释的那一段。

// 		glBegin(GL_LINES);
// 			glVertex2i(Rect[i].x1, Rect[i].y1);
// 			glVertex2i(Rect[i].x1, Rect[i].y1);
// 			glVertex2i(Rect[i].x1, Rect[i].y1);
// 			glVertex2i(Rect[i].x1, Rect[i].y1);
// 		glEnd();

用这一段代码也可以实现矩形的绘制,大家可以自己试一试。


OVER。

你可能感兴趣的:(openGL相关)