Я делаю программу, которая будет иметь меню и подменю.
РЕДАКТИРОВАНИЕ ------------------------------------------------
Подменю "shape" не работает, когда я вызываю его.
Когда я вызываюменю формы, оно должно рисовать, например, квадрат или треугольник или круг.
Я помещаю образец моего кода здесь.чтобы изменить форму, ничего не происходит. Как видите, я использую «draw» для вызова соответствующей формы. У меня либо ошибка в функции myDisplay, либо в функции shape_menu.Спасибо
отредактировано ---------------------------------------------------------------------------
Мне наконец-то удалось это, кроме одного. Когдаон рисует круг, я не могу его переместить. Он не реагирует на щелчок мыши в окне.Мои исправления:
...
void shape_menu (int n){
switch (n) {
case 2: draw=2;break;
case 3: draw=3;break;
case 4: draw=4;break;
}
glutPostRedisplay();
}
...
void myDisplay()
{
if(CLEARFLAG) glClear(GL_COLOR_BUFFER_BIT);
else if (draw==1) {mydraw(xpos,ypos);}
else if (draw==2) {square(xpos,ypos);}
else if (draw==3) {triangle(xpos,ypos);}
else if (draw==4) {circle(xpos,ypos);}
glutSwapBuffers();
}
....
, и я также удалил «draw == 1» из своих функций.Функция, которая дает круг:
void circle(float x,float y )
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
int numpoints=84;
glColor3f(col1,col2,col3);
glBegin( GL_LINE_STRIP );
int i;
for(i=0; i<numpoints; i++ )
{
float angle = i * (2.0*PI/numpoints);
x = cos( angle )*l;
y = sin( angle )*l;
glVertex2f(x,y);
}
glEnd();
}
Как мне решить мою проблему?