Как сделать ссылку меню с объектом, используя GLUT? - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно создать меню, в котором мое приложение для каждого объекта, параметры меню одинаковы для всех. Я пытаюсь сделать это, используя opengl, и ответы на поиск имеют ссылки недоступны.

Я очень стараюсь, исследую, как использовать меню вложения, но безуспешно ... Я не знаю, что я делаю!

glColor3f(R,G,B);
glBegin(GL_LINE_LOOP); 
for (i = 0; i < num_linhas; i++) {
    angle = 2*PI*i/num_linhas;
    glVertex2f((cos(angle)*raio) + x, (sin(angle)*raio) + y);
}
glEnd();

Я рисую круги, много кругов

// Função callback chamada para gerenciar eventos do mouse
void GerenciaMouse(int button, int state, int x, int y)
{
    int i = 0, x1, y1;
    int encontrou = 0;
    float distancia;

    x1 = x;
    y1 = ay - y;
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){  
         while(i < N && !encontrou){
            distancia = calcDist(x1, y1, Nos[i].x, Nos[i].y);
            if(distancia <= 5.0){
                printf("click");
                encontrou = 1;
                dispMenu = i;

                menu();
                //desenharCirculo((GLint)Nos[i].x, (GLint)Nos[i].y, 5,10, 0.0, 1.0, 0.0);
            }
            i++;
         }
    }
}

это мышь-манипулятор и создание меню, если щелчок находится на радиусе круга

void menu()
{

    int sub1;

    printf("click\n");
    glutCreateMenu(GoMenu);
    glutAddMenuEntry("Define source", 1);
    glutAddMenuEntry("Define sink", 2);
    glutAddMenuEntry("Recharge device", 3);
    glutAttachMenu(GLUT_LEFT_BUTTON);
}

и это меню, которое я хочу создать, но запускаю только в первый раз, после любого щелчка стрелять в меню.

Я хочу видеть меню, когда я нажимаю на объект, если я щелкаю из любого объекта, ничего не происходит.

PS: мое приложение использует потоки для обновления круга из-за того, что время от времени они могут менять ваш цвет, имитируя отсутствие батареи.

...