-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