画点的例子:
#include "stdafx.h" #include<gl/glut.h> #include<cmath> // Define a constant for the value of PI #define GL_PI 3.1415f // Rotation amounts static GLfloat xRot = 0.0f; static GLfloat yRot = 0.0f; // Called to draw scene void RenderScene(void) { GLfloat x,y,z,angle; // Storeage for coordinates and angles // Clear the window with current clearing color glClear(GL_COLOR_BUFFER_BIT); // Save matrix state and do the rotation glPushMatrix(); glRotatef(xRot, 1.0f, 0.0f, 0.0f); glRotatef(yRot, 0.0f, 1.0f, 0.0f); // Call only once for all remaining points glBegin(GL_POINTS); z = -50.0f; for(angle = 0.0f; angle <= (2.0f*GL_PI)*3.0f; angle += 0.1f) { x = 30.0f*sin(angle); y = 40.0f*cos(angle); // Specify the point and move the Z value up a little glVertex3f(x, y, z); z += 0.5f; } // Done drawing points glEnd(); // Restore transformations glPopMatrix(); // Flush drawing commands glutSwapBuffers(); } // This function does any needed initialization on the rendering // context. void SetupRC() { // Black background glClearColor(0.0f, 0.0f, 0.0f, 1.0f ); // Set drawing color to green glColor3f(1.0f, 0.0f, 0.0f); } void SpecialKeys(int key, int x, int y) { if(key == GLUT_KEY_UP) xRot-= 5.0f; if(key == GLUT_KEY_DOWN) xRot += 5.0f; if(key == GLUT_KEY_LEFT) yRot -= 5.0f; if(key == GLUT_KEY_RIGHT) yRot += 5.0f; if(key > 356.0f) xRot = 0.0f; if(key < -1.0f) xRot = 355.0f; if(key > 356.0f) yRot = 0.0f; if(key < -1.0f) yRot = 355.0f; // Refresh the Window glutPostRedisplay(); } void ChangeSize(int w, int h) { GLfloat nRange = 100.0f; // Prevent a divide by zero if(h == 0) h = 1; // Set Viewport to window dimensions glViewport(0, 0, w, h); // Reset projection matrix stack glMatrixMode(GL_PROJECTION); glLoadIdentity(); // Establish clipping volume (left, right, bottom, top, near, far) if (w <= h) glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange, nRange); else glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange); // Reset Model view matrix stack glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutCreateWindow("Points Example"); glutReshapeFunc(ChangeSize); glutSpecialFunc(SpecialKeys); glutDisplayFunc(RenderScene); SetupRC(); glutMainLoop(); return 0; }
效果:
相关推荐
基于MFC的OpenGL绘图 在计算机图形学中,OpenGL是一个跨平台的图形API,提供了强大的图形处理能力。MFC(Microsoft Foundation Classes)是一个基于C++的应用程序框架,提供了一个功能强大的开发环境。在基于MFC的...
本教程将引导你入门Android上的OpenGL ES,讲解如何在屏幕上画点和画图。 首先,我们需要理解OpenGL ES的基本概念。OpenGL ES是一个基于状态机的API,它的操作会影响一系列的状态变量。这些状态变量包括颜色、深度...
在VC中实现OpenGL三维绘图,MFC中使用opengl。
项目文件可能是Visual Studio解决方案文件,包含C#源代码项目,其中可能有`Program.cs`作为入口点,`OpenGLWindow.cs`用于处理窗口和OpenGL上下文,以及多个其他类来处理特定的图形任务。 学习这个实例,你可以了解...
帧缓冲区存储了最终的像素点值,当缓冲区被清空时,图像会显示在屏幕上。这一过程可以简化为一个绘制流水线,其中每个阶段都处理特定的任务,直到图像最终呈现在用户眼前。 OpenGL的基本语法包括一系列的函数,这些...
为了支持OpenGL,需要在视图类的`OnPreCreateWindow`函数中添加`WS_CLIPCHILDREN`和`WS_CLIPSIBLINGS`风格,这将确保窗口正确处理子窗口的重绘。 4. **编写OpenGL相关成员函数和变量**: 在视图类中添加用于设置...
OpenGL是一种强大的图形编程接口,广泛应用于游戏开发、科学可视化、工程设计等领域。MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的C++库,用于构建Windows应用程序。将OpenGL与MFC结合,可以在...
3. **图元**:OpenGL将一组顶点连接起来形成图元,如点、线段、三角形等。三角形是最基本的元素,几乎所有的3D模型都由三角面片组成。 4. **模型视图矩阵**:用于将模型坐标转换为观察坐标,包括模型变换(旋转、平...
通过OpenGL,开发者可以利用顶点、颜色、纹理等属性来创建和操纵这些形状,并通过各种渲染模式(如填充、线框或点描)来展现不同的视觉效果。 在OpenGL中,2D图形实际上是在3D空间内模拟的,通过将z坐标设置为常数...
这些顶点可以表示三维空间中的点,然后通过OpenGL的图元装配和光栅化过程转换为屏幕上的像素。此外,还可以应用颜色、纹理、深度测试等属性,使得图形更加丰富和真实。 在代码实现中,我们通常会使用glBegin()和...
OpenGL是用于创建2D和3D图形的强大框架,它是一个跨语言、跨平台的应用程序编程接口(API),广泛应用于游戏开发、科学可视化和工程建模等领域。在"opengl的简单绘图程序"中,我们将探讨如何使用OpenGL进行基本的...
本篇将详细介绍如何在VC中实现OpenGL三维绘图,以及涉及的相关知识点。 首先,你需要在VC项目中包含OpenGL库。这可以通过在项目设置中添加链接器依赖项和头文件目录来完成。通常,你需要链接`opengl32.lib`、`glu32...
在本项目“1-2_opengl_绘制随机点_chief7ne_C++_”中,我们关注的是如何在C++环境下利用OpenGL来生成并显示随机分布的点。这个项目可能是一个基础教程,旨在帮助初学者理解OpenGL的基本绘图操作。 首先,OpenGL是一...
此资源,采用qtcreator opengl技术,显示2d的图片,可以修改利用opengl显示多张图片
简单的OpenGL 3D绘图程序 初学者必学
3. **图元(Primitives)**:由顶点组合成的基本形状,如点、线段、三角形等。 4. **坐标系统**:OpenGL使用右手坐标系,原点在屏幕中心,X、Y轴分别对应屏幕的左右和上下,Z轴指向观众。 5. **视口(Viewport)**...
2. **OpenGL绘图类**:一个继承自QOpenGLWidget的类,包含paintGL()函数,这是OpenGL绘制的主要入口点。在该函数中,会清除颜色缓冲区,设置投影和模型视图矩阵,然后执行实际的绘图操作。 3. **事件处理**:在...
创建一个基于MFC 的Single Document 应用程序,利用OpenGL 进行图形的绘制: 1.实现OpenGL 绘图环境和Windows 绘图环境兼容。 2.利用OpenGL 绘图函数进行一些基本图形如直线、多边形的绘制。 3.利用OpenGL 设置...
OpenGL是一种强大的图形编程接口,广泛应用于游戏开发、科学可视化等领域。在Windows环境下,结合Microsoft Foundation Classes (MFC) 和Visual Studio 2010,我们可以创建一个用户界面友好的应用程序来展示OpenGL...
在开发过程中,开发者可能学习了以下关键知识点: 1. **QT集成OpenGL**:如何在QT项目中配置OpenGL支持,创建`QGLWidget`子类,并重写必要的生命周期函数,如`initializeGL()`和`paintGL()`。 2. **OpenGL上下文**...