OpenGL - 突出显示正方形

时间:2016-11-02 20:31:16

标签: c++ opengl visual-studio-2015

我在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);函数中调用该函数。

但如果我希望能够在点击时突出显示每个方格,我该怎么做?

0 个答案:

没有答案