glDrawElements не рисует, когда вершины находятся в цикле for - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь создать круг, используя массивы вершин, я заполняю массив в цикле for точками, но ничего не отображается, вместо этого, если я помещаю значения вручную в массив, все работает нормально, яне знаю, что должно быть не так.

#include <cstdlib>
#include <cmath>
#include <iostream>

#include <GL/glew.h>
#include <GL/freeglut.h> 

#define PI 3.14159265358979324

static float R = 40.0; // Radius of circle.
static float X = 50.0; // X-coordinate of center of circle.
static float Y = 50.0; // Y-coordinate of center of circle.
static int numVertices = 5; // Number of vertices on circle.

static float vertices[15] =
{

};

static unsigned int stripIndices[] = { 0, 1, 2, 3, 4};

// Drawing routine.
void drawScene(void)
{
    float t = 0; // Angle parameter.
    int i;


    int k = 1;
    for (i = 0; i < numVertices; i++)
    {
        vertices[k] = X + R * cos(t);
        k++;
        vertices[k] = Y + R * sin(t);
        k++;
        vertices[k] = 0.0;

        k++;
        t += 2 * PI / numVertices;
    }



    glClear(GL_COLOR_BUFFER_BIT);

    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
    glColor3f(1.0, 0.0, 0.0);
    glDrawElements(GL_LINE_LOOP, 5, GL_UNSIGNED_INT, stripIndices);

    glFlush();
}

1 Ответ

0 голосов
/ 02 марта 2019

О, только что заметил, что вы делаете 'k = 1'.Это должно быть 'k = 0'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...