在OpenTK中绘制四面体

发布于 2024-10-23 17:30:50 字数 832 浏览 2 评论 0原文

我使用 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 吗?

提前致谢, 丹尼尔

I made a simple spinning tetrahedron application with OpenTK. My problem is that the last face is missing. I guess because I'm making a wrong order of vertices.

        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();

What is the correct order to get the tetrahedron? Should I use another BeginMode?

Thanks in advance,
Daniel

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

手心的海 2024-10-30 17:30:50

如果您在此页面 它提供了似乎对它们有用的坐标和 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}}

if you look for the Tetrahedron::draw() function on this page it provides a list of coords and opengl calls that seem to be working for them.

Namely, this kind of thing:

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}}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文