我在OpenGL中制作2D绘图画布,只需选择要绘制的形状,即可在绘图画布上绘制形状。
我已经为2D绘图画布创建了整个界面,并且还添加了一个鼠标功能,该功能读取的屏幕尺寸1000x800
也完美无缺,但是我已经绘制了一些正方形,我想要能够更改它们的颜色取决于哪个是点击(突出显示它们)。
这是我的drawSquare
函数,用于绘制4个点以形成正方形:
void drawSquare(GLfloat length, GLfloat x, GLfloat y, GLfloat outline)
{
// x1,y1 is the top left-hand corner coordinate
// and so on...
GLfloat x1, y1, x2, y2, x3, y3, x4, y4;
x1 = x - length / 2;
y1 = y + length / 2;
x2 = x + length / 2;
y2 = y + length / 2;
x3 = x + length / 2;
y3 = y - length / 2;
x4 = x - length / 2;
y4 = y - length / 2;
// ACTUAL SQUARE OBJECT
glColor3f(0.0, 1.0, 1.0); // Colour: Cyan
glBegin(GL_POLYGON);
glVertex2f(x1, y1); // vertex for BLUE SQUARES
glVertex2f(x2, y2);
glVertex2f(x3, y3);
glVertex2f(x4, y4);
glEnd();
if (outline == true)
{
// SQUARE OUTLINE
glColor3f(0.0, 0.0, 0.0); // Colour: Black
glBegin(GL_LINE_LOOP);
glLineWidth(2);
glVertex2f(x1, y1); // vertex for OUTLINE
glVertex2f(x2, y2);
glVertex2f(x3, y3);
glVertex2f(x4, y4);
glEnd();
}
glFlush();
}
要绘制它,我只需使用display()
在我的drawSquare(100, 50, 350,true);
函数中调用该函数。
但如果我希望能够在点击时突出显示每个方格,我该怎么做?