基于VC++和OpenGL的STL文件读取与显示实践
需积分: 49 201 浏览量
更新于2024-08-10
收藏 3.65MB PDF 举报
"这篇文章主要介绍了如何在Qt 5.15.0中处理qrand函数被替换为qrandomgenerator的问题,以及如何使用C++和OpenGL读取与显示STL文件的实践经验。"
在Qt 5.15.0中,`qrand()`函数被废弃并替换为`QRandomGenerator`类,这是为了提供更高效和更安全的随机数生成。`qrand()`全局函数的使用被鼓励改为使用线程局部的`QRandomGenerator`实例。要解决这个问题,你需要按照以下步骤进行:
1. 引入`<QRandomGenerator>`头文件。
2. 使用`QRandomGenerator::global()`获取全局随机数生成器,或者在特定线程中使用`QThreadStorage<QRandomGenerator>`来存储线程局部的随机数生成器。
3. 用`QRandomGenerator::bounded()`或`nextInt()`方法来生成随机数。例如,如果你之前用`qrand() % upperLimit`生成0到`upperLimit-1`的随机数,现在可以改写为`QRandomGenerator::global()->bounded(0, upperLimit)`。
在STL文件的读取与显示方面,文章详细描述了如何使用C++的标准输入输出库(IO流,iostream)和字符串库(string)来处理STL文件。首先,创建一个`ifstream`对象并绑定到STL文件,然后通过`getline()`函数逐行读取文件内容。STL文件由一系列的三角面片组成,每个面片包含三个顶点,每个顶点由三个坐标(x, y, z)定义。在代码中,定义了一个名为`Vertex`的类来存储这些顶点信息。
为了读取STL文件,文章介绍了一个名为`VertexReader`的类,它包含了读取文件并解析顶点信息的函数。在读取过程中,需要识别关键词"Vertex",然后提取随后的坐标数据。当遇到"Vertex"时,读取接下来的三个双精度浮点数(double)分别作为x, y, z坐标。读取完成后,这些顶点信息可以被传递给OpenGL来绘制三角面片。
OpenGL是一个用于渲染2D和3D图形的应用编程接口(API),在这里用于显示STL文件中的三角面片。通过OpenGL的绘图函数,可以将读取到的顶点数据转换为屏幕上的几何形状。在C++中,通常使用GLUT或GLEW库来简化OpenGL的使用,并与IO流库配合,完成从STL文件到屏幕的显示过程。
文章提供了从STL文件读取数据和使用OpenGL进行可视化的基本步骤,这对于进行3D建模、逆向工程和其他相关领域的工作至关重要。通过理解和应用这些技术,开发者可以处理STL文件并创建交互式3D应用程序。
点击了解资源详情
点击了解资源详情
点击了解资源详情
1852 浏览量
756 浏览量
5801 浏览量
1578 浏览量
点击了解资源详情
点击了解资源详情
集成电路科普者
- 粉丝: 44
- 资源: 3860
最新资源
- 非常不错的在线邮件群发系统官方版v1.1
- ng-auth:角度中的简单身份验证受限状态
- 4Coders-MeuCandidatoIdeal:黑客马拉松透明度巴西应用程序
- Memory-Game:原生Android记忆游戏应用
- 心情MTV网站系统官方版 v2.0
- 红警2mix文件加密器
- chasqientrega:https
- 广告牌彩灯闪烁控制程序+设计说明.rar
- frontend-boilerplate
- aspectjs:aspectjs切面编程
- mail-bot:基于条件的邮件机器人
- Hotel_website:CSS中的基本酒店网站
- 手机九宫格html5网站模板
- 水国类数据集(CV专用)
- 中国城市区域数据.zip
- ASOFI3D_时域各向异性地震建模_c语言_地震建模_时域_各向异性_ASOFI3D_建模_地震_3D