我需要使用 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 个具有给定半径的坐标,谢谢!
你的代码甚至不会画一个圆圈。如果有的话,它会很快绘制一条延伸出视图区域的对角线。根据半径和角度,圆图需要使用正弦和余弦。
这段代码我没试过,但是需要更像这样才能画一个正方形。
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)
没有定义法线:也许我应该逆时针旅行。