基于VC++和OpenGL的STL文件读取与显示实践
需积分: 49 112 浏览量
更新于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应用程序。
288 浏览量
475 浏览量
568 浏览量
755 浏览量
1577 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
集成电路科普者
- 粉丝: 44
- 资源: 3865
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器