实验零

实验要求:

本次实验要求你熟悉OpenGL的配置和使用,

  1. 读取三角形网格数据文件
  2. 使用 OpenGL 绘制该模型(能够对模型进行平移、旋转)
  3. 交互设定模型的两个位置和姿态,利用四元数 (quaternion) 对物体进行平滑的移动和旋转,使得物体在平移过程中能够平滑旋转。

实现思路:

读取.off文件。

.off文件的主要内容包括顶点个数、三角面片个数、顶点位置、组成三角面片的三个顶点下标。

通过读取并处理.off文件,画出模型。

使用平移和旋转函数,对位置进行控制。在交互时,wsad对应平移,上下左右键对应旋转。

为了实现对位置的设置,在按下F1后,记录第一个位置,并在当前位置画一个线框。在按下F2后,记录第二个位置。按下F3后,将线框从第一个位置变换到第二个位置。

变换过程中通过插值计算各顶点的位置。对于平移,使用线性插值;对于旋转先将初始和终止的旋转转化成四元数,再使用slerp对四元数进行插值。

实现结果:

github链接:https://github.com/sdu-graphics/experiments-zxj107/tree/main/experiment0

图形学实验零 读取三角网格并交互相关推荐

  1. 计算机图形学 实验二 三维模型读取与控制【OpenGL】

    文章目录 实验2.1 OpenGL的控制与交互方式 一. 实验目的 二. 理论背景 三. 实验内容 1. 创建基本工程项目 2. 在子窗口中绘制图形 3. 在子窗口中通过键盘事件更换椭圆形状颜色 4. ...

  2. 计算机图形学实验——三维迷宫的创建及走迷宫过程中的交互功能的实现

    计算机图形学实验2 三维迷宫的创建及走迷宫过程中的交互功能的实现 OpenGL三维迷宫创建及交互 三维"图元"的绘制 迷宫结构的储存 视角转换的实现 碰撞检测 纹理贴图 小结 Op ...

  3. 计算机图形学实验——二维卡通人物交互

    计算机图形学实验1.2卡通人物交互 OpenGL卡通人物交互 基础"图元"绘制 OpenGL拾取物体 反走样 略提反走样问题 OpenGL实现二维反走样 放缩.旋转和拖动 小结 O ...

  4. 计算机图形学 实验6 《纹理映射》

    计算机图形学 实验6 <纹理映射> 一.实验目的 学习真实感图形绘制技术. 二.实验内容 1.读取或生成纹理图像数据: 2.将纹理图像映射到物体表面. 三.实验方法 要使用纹理映射,我们必 ...

  5. 计算机图形学直线扫描转论文,计算机图形学实验报告-实验1直线段扫描转换.doc...

    PAGE 32 PAGE 7 计算机图形学 实验报告 班级 计算机工硕班 学号 2011220456 姓名 王泽晶 实验一:直线段扫描转换 实验目的 通过本次试验,学生可以掌握直线段的扫描转换算法及其 ...

  6. Siggraph三角网格变形之拉普拉斯变换

    三角网格变形一直是CAGD相关领域的重点,刚上研究生的时候,感觉有点神奇.而且一上来导师就给我发了一篇基于格林坐标的自由变形的相关paper,让我看,外文文献,看了n多天,第一次看外文文献,啥也没看懂 ...

  7. 计算机图形学直线线型实验报告,计算机图形学实验报告-直线中点bresenham算法的实现资料.doc...

    计算机图形学实验报告-直线中点bresenham算法的实现资料.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 29.90 积分 计算机图形 ...

  8. 计算机图形学 | 实验四:绘制一个球体

    计算机图形学 | 实验四:绘制一个球体 计算机图形学 | 实验四:绘制一个球体 封装Shader 为什么要封装Shader 如何使用 绘制球模型 球面顶点遍历 构造三角形图元 开启线框模式 开启面剔除 ...

  9. 计算机图形学实验一(二维图形绘制)

    计算机图形学实验一(二维图形绘制) 一.实验内容 二.实验环境 三.问题分析 四.算法设计 五.源代码 六.程序运行结果 一.实验内容 (1)绘制金刚石图案 金刚石图案的成图规则是:把一个圆周等分成n ...

最新文章

  1. 2020 我的C++学习之路 C++PrimerPlus第四章课后习题
  2. 重磅 | 神策智能运营 2.0 发布!解锁小程序“拉、留、转”新招式
  3. GDCM:gdcm::EquipmentManufacturer的测试程序
  4. MacOSX系统怎么开启Root账户?Mac电脑开启root权限教程
  5. python特征工程意义_python数据挖掘--特征工程篇(附代码)
  6. a标签无跳转的死链接
  7. configure报错C compiler cannot create executables
  8. 如何为MindManager时间表思维导图添加春节假期?
  9. (附源码)RN Demo
  10. 遗传算法原理以及matlab代码
  11. 常用端口号\协议\服务对照表
  12. 使用JS访问本地数据库
  13. 计算机主板电源接口8pin,菜鸟老鸟都要知道 电源接口图文全教程
  14. Java实现坦克大战小游戏(源码+注释)
  15. seo优化如何写出高质量的文章
  16. 关于nmap -O扫描中出现索尼手机的一份调研
  17. 计算机信息处理技术的发展历程,中文信息处理技术发展简史.docx
  18. grafana的前端二次开发初体验
  19. Spring Data Jpa使用QueryDsl接口出现的一些问题
  20. Linux命令 - usermod命令

热门文章

  1. delphi 多线程详解及其详解例子
  2. 计算机的假桌面,给电脑桌面放个假!极品桌面抢先评测
  3. 求圈地的方块数java_[玩家教程]如何用Residence插件圈地及进行其他操作
  4. 【vn.py学习笔记(三)】vn.py事件引擎 学习笔记
  5. 荣耀畅玩7X安装鸿蒙系统,华为荣耀畅玩7X EMUI8.0回退到EMUI5.0教程(安卓8.0降级7.0)...
  6. 如何在删除ibdata1的情况下恢复
  7. Ext6.2 sencha app build 几种报错的解决方法
  8. threejs加载obj文件
  9. 控制PowerPoint课件中Flash歌曲的播放
  10. 算法导论—AC自动机