openGL(c) 画正方形

Cod*_*123 1 c opengl

我需要使用 c (openGL) 绘制一个正方形,我只有 1 个坐标,它是正方形的中心(比如说 0.5,0.5),我需要绘制一个正方形 ABCD,每边长度为 0.2(AB、BC、CD ,DA),我尝试使用下一个函数,但它没有绘制任何内容,

void drawSquare(double x1,double y1,double radius)
{
    glColor3d(0,0,0);
    glBegin(GL_POLYGON);

    double locationX = x1;
    double locationY = x2;
    double r = radius;

    for(double i=0; i <= 360 ; i+=0.1)
    {
        glVertex2d(locationX + radius*i, locationY + radius*i);
    }

    glEnd();
}
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么它不工作\指向我正确的方向(我不想绘制具有 4 个正常坐标的多边形,但只有 1 个具有给定半径的坐标,谢谢!

Wea*_*ane 6

你的代码甚至不会画一个圆圈。如果有的话,它会很快绘制一条延伸出视图区域的对角线。根据半径和角度,圆图需要使用正弦和余弦。

这段代码我没试过,但是需要更像这样才能画一个正方形。

void drawSquare(double x1, double y1, double sidelength)
{
    double halfside = sidelength / 2;

    glColor3d(0,0,0);
    glBegin(GL_POLYGON);

    glVertex2d(x1 + halfside, y1 + halfside);
    glVertex2d(x1 + halfside, y1 - halfside);
    glVertex2d(x1 - halfside, y1 - halfside);
    glVertex2d(x1 - halfside, y1 + halfside);

    glEnd();
}
Run Code Online (Sandbox Code Playgroud)

没有定义法线:也许我应该逆时针旅行。