图形学实验零 读取三角网格并交互
实验零
实验要求:
本次实验要求你熟悉OpenGL的配置和使用,
- 读取三角形网格数据文件
- 使用 OpenGL 绘制该模型(能够对模型进行平移、旋转)
- 交互设定模型的两个位置和姿态,利用四元数 (quaternion) 对物体进行平滑的移动和旋转,使得物体在平移过程中能够平滑旋转。
实现思路:
读取.off文件。
.off文件的主要内容包括顶点个数、三角面片个数、顶点位置、组成三角面片的三个顶点下标。
通过读取并处理.off文件,画出模型。
使用平移和旋转函数,对位置进行控制。在交互时,wsad对应平移,上下左右键对应旋转。
为了实现对位置的设置,在按下F1后,记录第一个位置,并在当前位置画一个线框。在按下F2后,记录第二个位置。按下F3后,将线框从第一个位置变换到第二个位置。
变换过程中通过插值计算各顶点的位置。对于平移,使用线性插值;对于旋转先将初始和终止的旋转转化成四元数,再使用slerp对四元数进行插值。
实现结果:
github链接:https://github.com/sdu-graphics/experiments-zxj107/tree/main/experiment0
图形学实验零 读取三角网格并交互相关推荐
- 计算机图形学 实验二 三维模型读取与控制【OpenGL】
文章目录 实验2.1 OpenGL的控制与交互方式 一. 实验目的 二. 理论背景 三. 实验内容 1. 创建基本工程项目 2. 在子窗口中绘制图形 3. 在子窗口中通过键盘事件更换椭圆形状颜色 4. ...
- 计算机图形学实验——三维迷宫的创建及走迷宫过程中的交互功能的实现
计算机图形学实验2 三维迷宫的创建及走迷宫过程中的交互功能的实现 OpenGL三维迷宫创建及交互 三维"图元"的绘制 迷宫结构的储存 视角转换的实现 碰撞检测 纹理贴图 小结 Op ...
- 计算机图形学实验——二维卡通人物交互
计算机图形学实验1.2卡通人物交互 OpenGL卡通人物交互 基础"图元"绘制 OpenGL拾取物体 反走样 略提反走样问题 OpenGL实现二维反走样 放缩.旋转和拖动 小结 O ...
- 计算机图形学 实验6 《纹理映射》
计算机图形学 实验6 <纹理映射> 一.实验目的 学习真实感图形绘制技术. 二.实验内容 1.读取或生成纹理图像数据: 2.将纹理图像映射到物体表面. 三.实验方法 要使用纹理映射,我们必 ...
- 计算机图形学直线扫描转论文,计算机图形学实验报告-实验1直线段扫描转换.doc...
PAGE 32 PAGE 7 计算机图形学 实验报告 班级 计算机工硕班 学号 2011220456 姓名 王泽晶 实验一:直线段扫描转换 实验目的 通过本次试验,学生可以掌握直线段的扫描转换算法及其 ...
- Siggraph三角网格变形之拉普拉斯变换
三角网格变形一直是CAGD相关领域的重点,刚上研究生的时候,感觉有点神奇.而且一上来导师就给我发了一篇基于格林坐标的自由变形的相关paper,让我看,外文文献,看了n多天,第一次看外文文献,啥也没看懂 ...
- 计算机图形学直线线型实验报告,计算机图形学实验报告-直线中点bresenham算法的实现资料.doc...
计算机图形学实验报告-直线中点bresenham算法的实现资料.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 29.90 积分 计算机图形 ...
- 计算机图形学 | 实验四:绘制一个球体
计算机图形学 | 实验四:绘制一个球体 计算机图形学 | 实验四:绘制一个球体 封装Shader 为什么要封装Shader 如何使用 绘制球模型 球面顶点遍历 构造三角形图元 开启线框模式 开启面剔除 ...
- 计算机图形学实验一(二维图形绘制)
计算机图形学实验一(二维图形绘制) 一.实验内容 二.实验环境 三.问题分析 四.算法设计 五.源代码 六.程序运行结果 一.实验内容 (1)绘制金刚石图案 金刚石图案的成图规则是:把一个圆周等分成n ...
最新文章
- 2020 我的C++学习之路 C++PrimerPlus第四章课后习题
- 重磅 | 神策智能运营 2.0 发布!解锁小程序“拉、留、转”新招式
- GDCM:gdcm::EquipmentManufacturer的测试程序
- MacOSX系统怎么开启Root账户?Mac电脑开启root权限教程
- python特征工程意义_python数据挖掘--特征工程篇(附代码)
- a标签无跳转的死链接
- configure报错C compiler cannot create executables
- 如何为MindManager时间表思维导图添加春节假期?
- (附源码)RN Demo
- 遗传算法原理以及matlab代码
- 常用端口号\协议\服务对照表
- 使用JS访问本地数据库
- 计算机主板电源接口8pin,菜鸟老鸟都要知道 电源接口图文全教程
- Java实现坦克大战小游戏(源码+注释)
- seo优化如何写出高质量的文章
- 关于nmap -O扫描中出现索尼手机的一份调研
- 计算机信息处理技术的发展历程,中文信息处理技术发展简史.docx
- grafana的前端二次开发初体验
- Spring Data Jpa使用QueryDsl接口出现的一些问题
- Linux命令 - usermod命令
热门文章
- delphi 多线程详解及其详解例子
- 计算机的假桌面,给电脑桌面放个假!极品桌面抢先评测
- 求圈地的方块数java_[玩家教程]如何用Residence插件圈地及进行其他操作
- 【vn.py学习笔记(三)】vn.py事件引擎 学习笔记
- 荣耀畅玩7X安装鸿蒙系统,华为荣耀畅玩7X EMUI8.0回退到EMUI5.0教程(安卓8.0降级7.0)...
- 如何在删除ibdata1的情况下恢复
- Ext6.2 sencha app build 几种报错的解决方法
- threejs加载obj文件
- 控制PowerPoint课件中Flash歌曲的播放
- 算法导论—AC自动机