基于半边数据结构实现欧拉操作和扫成操作并使用图形显示实体c++源码(三维CAD课程作业).zip 基于半边数据结构实现欧拉操作和扫成操作并使用图形显示实体c++源码(三维CAD课程作业).zip 【资源说明】 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 ### 任务 1. 定义半边数据结构; 2. 基于半边数据结构,实现五个欧拉操作; 3. 基于欧拉操作,实现扫掠操作,并将基于扫掠操作构建的实体模型进行图形显示。 ### 环境 visual studio 2019 + glfw + glad + glm,使用opengl3.3。 ### 项目结构 ``` hello_opengl-master ├─ hello_opengl │ ├─ Camera.h │ ├─ Draw.h │ ├─ EulerOperation.cpp │ ├─ EulerOperation.h │ ├─ HalfEdgeDataStructure.h │ ├─ Shader.h │ ├─ Sweep.cpp │ ├─ Sweep.h │ ├─ hello_opengl.vcxproj │ ├─ hello_opengl.vcxproj.filters │ ├─ in.txt │ ├─ main.cpp │ ├─ shader.fs │ └─ shader.vs ├─ hello_opengl.sln ├─ opengl ├─ pic └─ readme.md ``` 图形相关的文件 ``` // 绘制的主要文件 Draw.h // 处理视角的类 Camera.h // 着色器 Shader.h shader.fs shader.vs // opengl相关的库 opengl文件夹 ``` 数据结构与算法相关的文件 ``` // 半边数据结构 HalfEdgeDataStructure.h // 欧拉操作 EulerOperation.cpp EulerOperation.h // 扫成操作 Sweep.cpp Sweep.h ``` 其他文件 ``` // 程序入口 main.cpp // 数据输入 in.txt // 项目说明 pic readme.md ``` ### 输入 - 文件`hello_opengl/in.txt`为输入,格式为:第1行为1个整数n,表示底面一共有n个环(包括外环和所有内环); - 然后输入n个环的数据,每个环的数据格式为:第1行为1个整数m,表示该环有m个顶点,之后的m行按逆时针(俯视角)顺序每行输入1个点的坐标(浮点数),x、y、z坐标以空格分隔; - 输入所有点的坐标之后另起一行,输入扫成的向量。 示例 ```txt 3 4 -10.0 10.0 0.0 -10.0 -10.0 0.0 10.0 -10.0 0.0 10.0 10.0 0.0 3 0.0 5.0 0.0 -5.0 0.0 0.0 5.0 0.0 0.0 4 2.0 -2.0 0.0 2.0 -6.0 0.0 6.0 -6.0 0.0 6.0 -2.0 0.0 0.0 0.0 20.0 ``` 对应的底面如下,扫成方向和距离为沿z轴正方向扫成20个单位: ![底面](pic/底面.png) ### 输出 控制台输出为扫成构造的实体的所有表面及其中的环、组成环的坐标,环中点的输出顺序即为环的方向。 图形输出为扫成构造的实体,因为没有解决带孔多边形的绘制,所以底面和顶面没有绘制。绘制出的实体会不断旋转,使用按键`W`、`A`、`S`、`D`可以改变视角。
- 1
- 2
- 3
- 4
- 5
- 粉丝: 1808
- 资源: 2129
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助