C++ 在OpenGL上绘制二维七边形

C++ 在OpenGL上绘制二维七边形,c++,opengl,C++,Opengl,在我的OpenGL程序中绘制七边形时遇到问题。我想在一个矩形内画一个七边形,到目前为止我可以画红色的矩形,但是七边形没有出现 我不认为我需要转换成度,除非我想把它转对?这是我的密码: void CChildView::OnGLDraw(CDC* pDC) { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); int width, height

在我的OpenGL程序中绘制七边形时遇到问题。我想在一个矩形内画一个七边形,到目前为止我可以画红色的矩形,但是七边形没有出现

我不认为我需要转换成度,除非我想把它转对?这是我的密码:

void CChildView::OnGLDraw(CDC* pDC)
{
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    int width, height;
    GetSize(width, height);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, // left
        1.0, // right
        0.0, // bottom
        GLdouble(height) / GLdouble(width), // top
        1.0, // near
        -1.0); // far

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    glColor3d(1., 0., 0.);

    glBegin(GL_POLYGON);    // Rectangle
    glVertex2d(0.25, 0.25);
    glVertex2d(0.75, 0.25);
    glVertex2d(0.75, 0.75);
    glVertex2d(0.25, 0.75);
    glEnd();

    glColor3d(1., 1., 1.);

    int numPoints = 7; // Heptagon
    double x, y;
    double radius = 0;
    double centerx = 0;
    double centery = 0;

    glBegin(GL_POLYGON);

    for (int i = 0; i < numPoints; i++)
    {
        x = centerx + radius * sin(2.0*M_PI*i / numPoints);
        y = centery + radius * cos(2.0*M_PI*i / numPoints);

        glVertex2d(x, y);

    }
    glEnd();

    glColor3d(0., 1., 0.);

    glBegin(GL_LINES);
    glVertex2d(m_linefmx, m_linefmx);
    glVertex2d(m_linetox, m_linetoy);
    glEnd();

}
void CChildView::OnGLDraw(CDC*pDC)
{
glClearColor(0.0f、0.0f、0.0f、0.0f);
glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位);
int宽度、高度;
GetSize(宽度、高度);
glMatrixMode(GL_投影);
glLoadIdentity();
格洛托(0.0,//左
1.0,//对
0.0,//底部
GLdouble(高度)/GLdouble(宽度),//顶部
1.0,//接近
-1.0);//远
glMatrixMode(GLU模型视图);
glLoadIdentity();
glColor3d(1,0,0.);
glBegin(GL_多边形);//矩形
glVertex2d(0.25,0.25);
glVertex2d(0.75,0.25);
glVertex2d(0.75,0.75);
glVertex2d(0.25,0.75);
格伦德();
glColor3d(1,1,1.);
int numPoints=7;//七分音符
双x,y;
双半径=0;
双中心x=0;
双中心=0;
glBegin(GL_多边形);
对于(int i=0;i
问题在于
半径
初始化为0且从未更改,因此所有点都计算为(0,0)。

是否尝试删除矩形以查看是否显示任何内容?您是否已调试以确保计算的坐标正确?顺便说一句,通常
sin
代表
y
cos
代表
x
。注意到
radius
设置为0,以后不会修改-因此所有点都可能计算为(0,0)是的,半径是问题所在。我应该删除这个问题吗?很高兴听到。这个问题没有问题,我会保留它。我会写我的评论作为回答。