zoukankan      html  css  js  c++  java
  • 学习OpenGL:笔记五

    绘制一个正方体

    正方体其实就是由6个矩形组成的几何体,X,Y,Z轴上各两个矩形。

    先绘制X轴上两个矩形

    - (void)drawXPlanes {
        static GLfloat triangleData[] = {
    // X轴0.5处的平面
          0.5,  -0.5,    0.5f, 1,  0,  0,
          0.5,  -0.5f,  -0.5f, 1,  0,  0,
          0.5,  0.5f,   -0.5f, 1,  0,  0,
          0.5,  0.5,    -0.5f, 1,  0,  0,
          0.5,  0.5f,    0.5f, 1,  0,  0,
          0.5,  -0.5f,   0.5f, 1,  0,  0,
    // X轴-0.5处的平面
          -0.5,  -0.5,    0.5f, 1,  0,  0,
          -0.5,  -0.5f,  -0.5f, 1,  0,  0,
          -0.5,  0.5f,   -0.5f, 1,  0,  0,
          -0.5,  0.5,    -0.5f, 1,  0,  0,
          -0.5,  0.5f,    0.5f, 1,  0,  0,
          -0.5,  -0.5f,   0.5f, 1,  0,  0,
        };
        [self bindAttribs:triangleData];
        glDrawArrays(GL_TRIANGLES, 0, 12);
    }

    效果如下图:
                                                      

    接下来绘制Y轴和Z轴上的两个矩形:

    - (void)drawYPlanes {
        static GLfloat triangleData[] = {
            -0.5,  0.5,  0.5f, 0,  1,  0,
            -0.5f, 0.5, -0.5f, 0,  1,  0,
            0.5f, 0.5,  -0.5f, 0,  1,  0,
            0.5,  0.5,  -0.5f, 0,  1,  0,
            0.5f, 0.5,   0.5f, 0,  1,  0,
            -0.5f, 0.5,  0.5f, 0,  1,  0,
             -0.5, -0.5,   0.5f, 0,  1,  0,
             -0.5f, -0.5, -0.5f, 0,  1,  0,
             0.5f, -0.5,  -0.5f, 0,  1,  0,
             0.5,  -0.5,  -0.5f, 0,  1,  0,
             0.5f, -0.5,   0.5f, 0,  1,  0,
             -0.5f, -0.5,  0.5f, 0,  1,  0,
        };
        [self bindAttribs:triangleData];
        glDrawArrays(GL_TRIANGLES, 0, 12);
    }
    
    - (void)drawZPlanes {
        static GLfloat triangleData[] = {
            -0.5,   0.5f,  0.5,   0,  0,  1,
            -0.5f,  -0.5f,  0.5,  0,  0,  1,
            0.5f,   -0.5f,  0.5,  0,  0,  1,
            0.5,    -0.5f, 0.5,   0,  0,  1,
            0.5f,  0.5f,  0.5,    0,  0,  1,
            -0.5f,   0.5f,  0.5,  0,  0,  1,
            -0.5,   0.5f,  -0.5,   0,  0,  1,
            -0.5f,  -0.5f,  -0.5,  0,  0,  1,
            0.5f,   -0.5f,  -0.5,  0,  0,  1,
            0.5,    -0.5f, -0.5,   0,  0,  1,
            0.5f,  0.5f,  -0.5,    0,  0,  1,
            -0.5f,   0.5f,  -0.5,  0,  0,  1,
        };
        [self bindAttribs:triangleData];
        glDrawArrays(GL_TRIANGLES, 0, 12);
    }

    效果如图:

                                                 

    练习的代码

  • 相关阅读:
    锤子科技官网:问题整理及注意事项
    springboot中文文档
    Spring Framework 开发参考手册中文(在线HTML)
    .is() 全选复选的判断
    c:forEach用法
    SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
    火狐浏览器下载文件保存文件名的乱码问题
    多线程安全的解决方法
    MySQL的concat以及group_concat的用法
    mysql 将时间转换成时间戳
  • 原文地址:https://www.cnblogs.com/neverMore-face/p/10143359.html
Copyright © 2011-2022 走看看