Рисование тетраэдра в OpenTK - PullRequest
1 голос
/ 20 марта 2011

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

        GL.Begin(BeginMode.Triangles);

        GL.Color3(Color.Silver);
        GL.Vertex3(-0.269f, -0.5f, -0.5f);
        GL.Vertex3(0.598f, -0.5f, 0f);
        GL.Vertex3(-0.269f, -0.5f, 0.5f);

        GL.Color3(Color.Honeydew);
        GL.Vertex3(-0.269f, -0.5f, -0.5f);
        GL.Vertex3(0.0f, 0.5f, 0f);
        GL.Vertex3(-0.269f, -0.5f, 0.5f);

        GL.Color3(Color.Moccasin);
        GL.Vertex3(-0.269f, -0.5f, 0.5f);
        GL.Vertex3(0.598f, -0.5f, 0f);
        GL.Vertex3(0.0f, 0.5f, 0f);

        GL.Color3(Color.IndianRed);
        GL.Vertex3(0.598f, -0.5f, 0f);
        GL.Vertex3(-0.269f, -0.5f, 0.5f);
        GL.Vertex3(0.0f, 0.5f, 0f);

        GL.End();

Каков правильный порядок получения тетраэдра?Должен ли я использовать другой BeginMode?

Заранее спасибо, Даниэль

1 Ответ

2 голосов
/ 20 марта 2011

если вы ищете функцию Tetrahedron :: draw () на на этой странице , она предоставляет список координат и вызовов opengl, которые, кажется, работают для них.

А именно, такие вещи:

P1 = {0.0, -1.0, 2.0};
P2 = {1.73205081, -1.0, -1.0};
P3 = {-1.73205081, -1.0, -1.0}
P4 = {0.0, 2.0, 0.0};
coords = {{P1, P2, P3}, {P1, P3, P4}, {P1, P4, P2}, {P2, P4, P3}}
...