第2课:OpenGL几何图原——点

本文通过实例展示了OpenGL中绘制点的过程,并探讨了点的大小限制。讲解了glPointSize函数的作用,以及当设置点大小超过特定值时,点会变为带状。文章还解释了GLUT工具包中的部分关键函数,如glClear、glBegin、glEnd、glVertex等,以及它们在图形绘制中的应用。
通过一个OpenGL程序,详细讲解点,初步引出其它一些图原。
  
点的大小默认为1个像素,但也可以改变之。改变的命令为glPointSize,其函数原型如下:   
void glPointSize(GLfloat size);   
size必须大于0.0f,默认值为1.0f,单位为“像素”。   

看一个OpenGL程序:    

#include < windows.h >     
#include 
< GL / glut.h >     // glut.h中含有gl.h和glu.h文件    

void  myDisplay( void )    
{    
    glClear(GL_COLOR_BUFFER_BIT);    
    glPointSize(
5.0f );    
    glBegin(GL_POINTS);    
        glVertex2f(
0.0f 0.0f );    
        glVertex2f(
### 头歌平台上的OpenGL简单形绘制方法 #### 创建项目环境 为了在头歌平台上实现OpenGL的简单形绘制,首先需要配置好开发环境。由于头歌支持多种编程语言和框架,在选择C++作为主要编程语言的情况下,可以参照标准流程设置OpenGL环境[^1]。 #### 初始化GLFW库 对于初学者来说,推荐使用GLFW这样的第三方库来简化窗口管理和输入处理的任务。通过安装并引入GLFW库到项目中,能够更便捷地创建OpenGL上下文以及管理主循环逻辑。 ```cpp #include <GLFW/glfw3.h> int main() { if (!glfwInit()) { return -1; } GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL); if (!window) { glfwTerminate(); return -1; } glfwMakeContextCurrent(window); while (!glfwWindowShouldClose(window)) { glClear(GL_COLOR_BUFFER_BIT); // 渲染指令... glfwSwapBuffers(window); glfwPollEvents(); } glfwDestroyWindow(window); glfwTerminate(); return 0; } ``` #### 绘制基本几何形状 一旦有了合适的环境准备就绪,则可以根据需求定义顶数据,并利用着色器程序将其传递给GPU进行渲染。这里展示了一个简单的例子——如何在一个新建立的OpenGL环境中画出一个三角形: ```cpp float vertices[] = { 0.5f, 0.5f, 0.0f, 0.5f, -0.5f, 0.0f, -0.5f, -0.5f, 0.0f }; // ...省略部分代码... glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); glEnableVertexAttribArray(0); glDrawArrays(GL_TRIANGLES, 0, 3); ``` 上述代码片段展示了如何分配内存空间存储顶坐标、绑定缓冲区对象并将这些数据发送至显卡;最后调用`glDrawArrays()`函数执行实际的绘操作。 #### 使用Qt集成OpenGL 如果倾向于采用更加现代化的方式来进行界面设计的话,也可以考虑借助于Qt框架中的QOpenGLWidget类来构建应用。这种方式不仅提供了强大的UI组件支持,同时也兼容传统的OpenGL API调用方式[^3]。 ```cpp class MyGLWidget : public QOpenGLWidget { protected: void initializeGL() override { // 初始化工作... } void paintGL() override { // 绘制场景... } private: GLuint vbo; // Vertex Buffer Object ID }; ``` 以上就是在头歌平台上开展OpenGL学习之旅所需掌握的基础知识和技术细节介绍。希望这份指南能帮助读者顺利开启这段旅程!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值