-1
在我的OpenGL程序中绘制七边形时遇到困难。我想绘制一个矩形内的七边形,到目前为止,我可以绘制红色的矩形,但七边形没有显示出来。绘制2D七边形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();
}
你有没有尝试删除矩形,看看有什么东西出现?你有没有调试过,看看你的计算坐标是否正确?顺便说一句,“sin”是'y','cos'是'x'。 – vesan 2015-02-06 02:57:07
刚注意到你的'半径'被设置为0,之后没有修改 - 所以所有的点可能会被计算为(0,0) – vesan 2015-02-06 02:59:02
是的,半径是问题。我应该删除这个问题吗? – Goose 2015-02-06 03:23:33