自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 计算机图形学实验八-Bezier、B样条、NURBS曲线曲面的绘制,满分报告,入股不亏!

3.1 实验数据和结果。

2023-08-21 10:49:53 1359

原创 计算机图形学实验七定义一个简单形体(OpenGL提供的基础形体,如立方体、球体等),并生成正交投影及透视投影视图

在本实验中,我才用自定义点的坐标,调用OpenGL库中的glVertex3fv函数进行立方体图形的绘制,针对两种投影方式(正交投影和透视投影),我定义了两种绘制窗口的函数,这样针对用户不同的选择,可以选择生成不同绘制窗口。关于调整观察姿态及位置(调整相机位置、姿态等)的问题,我采用鼠标拖动和鼠标点击检测的回调函数,这样随着鼠标的拖动和点击,就可以改变图形的坐标进而重新绘制图像渲染到窗口上,就可以实现利用鼠标拖动来调整观察姿态及位置。正交投影和透视投影均放了两张图,是鼠标拖动后的不同观察效果。

2023-08-21 09:48:46 1215 2

原创 计算机图形学实验六-多边形的Sutherland-Hodgman裁减算法

这里绘制多边形,顶点的输入有两种形式,一个是鼠标点击,一个是用户手动输入,因为这里选择的OpenGL 中的模型视图矩阵堆栈是GL_MODELVIEW,这样相当于设置坐标轴位于画布中间,但是用户鼠标点击的时候,存入的顶点根据输出验证可以看出均为正值,说明这里用户用鼠标点击绘制的图像只能位于第一象限,若想让图像均匀分布在画布上,或者用户想精准绘制多边形,则可选用键盘输入的选项,若用户只是想快速绘制多边形,观察裁剪效果,则可以选择鼠标点击绘制多边形,若绘制结果不理想,可以按下键盘上的0键,重新绘制。

2023-08-21 09:29:50 1292 1

原创 计算机图形学实验五-直线段的编码裁剪算法(Cohen-SutherLand算法)

连接和裁剪区域的4个角点的直线分别记为LT、RT、LB、RB,通过比较P0P1和这四条直线的斜率,可以确定直线的可见性、直线与区域边界的交点个数及交点所在边界。:参考Cohen-SutherLand算法的编码形式,定义编码函数,得到传入的点的坐标,首先判断是否完全可见,完全可见则直接绘制,完全不可见则直接抛弃,以上两种情况均不符合则为部分可见的情况,则开始判断起点所处的区域,针对三个不同的区域进行不同区域的处理,根据不同的斜率值进行不同交点的求解,这里就体现了NLN直线段裁剪算法的。

2023-08-21 09:20:32 2750 1

原创 计算机图形学实验四-简单几何形体(三角形、多边形等)的平移、缩放、旋转等几何变换

首先定义缩放函数,传入缩放变量sx,sy,参考点的坐标(x,y),其中sx、sy的值是由鼠标点击位置来确定的,初始化单位矩阵(关于矩阵的相关算法在6.2中进行说明),将sx、sy、x、y的值填入对应的单位矩阵位置中,然后使之与另外定义相同维度的单位矩阵进行矩阵相乘,最后更新多边形上点的坐标,这样就完成了图形的缩放。关于sx、sy的值的说明:sx、sy一开始设定的值是1,根据不同的缩放策略来调整sx、sy的值,其中不等比例缩放,当监测到鼠标点击的点大于参考点的时候,分别对sx、sy进行。

2023-08-21 09:08:52 1891 2

原创 计算机图形学实验三-多边形的扫描转换算法

根据输出无疑OpenGL自带的绘制多边形的算法要远快于扫描线算法的,这是因为OpenGL自带的绘制多边形的算法比较简单,对输入的顶点进行首尾一次连接画线即可,但同时也带来了算法的缺点,即无法处理自交和带环的多边形,而扫描线算法在处理特殊多边形上优势较大,并且扫描线算法是对逐点判断法的一个很大的改进,综合说明,扫描线算法是一个相对优秀的算法。由键盘输入的凸多边形,在画布范围内的绘制均可填充,所以该算法处理任意凸多边形,下面对鼠标和键盘的交互加以具体说明。,输出执行10000次的时间,进行算法效率的对比。

2023-08-21 08:51:48 993 5

原创 软件工程课程第十四章-十八章----测试项目过程度量

软件测试,包括白盒测试、黑盒测试等技术,过程度量和项目度量的方法,挣值分析

2023-08-16 15:07:12 464 1

原创 软件工程课程第十三章-质量概念

当我们从预防到检查内部失效成本和外部失效成本时,找到并修复错误或缺陷的相关成本会急剧增加。符合质量关注的是实现遵从设计的程序以及所得到的系统满足需求和性能目标的程度。用户满意度=合格的产品+好的质量+按预算和进度安排交付。设计质量包括设计满足需求模型规定的功能和特性的程度。解决投诉、产品退货和更换、热线支持、保修工作。内部失效成本包括:返工、补救、失效模型分析。改正错误/缺陷的相对成本。

2023-08-16 10:44:40 243 1

原创 软件工程课程第十二章-体系结构设计

重点是掌握体系结构风格,给定例子能判断出是哪种体系结构风格,第二个是构建设计原则,给定代码,能够判断出违反了什么设计原则并做出对应的修改

2023-08-16 10:35:41 2285 1

原创 软件工程课程第十一章-设计概念

接口是一组描述类外部可观察行为的操作,并提供对其公共操作的访问三个重要的元素︰。数据设计或类设计将类模型转化为设计类的实现以及软件实现所要求的数据结构;部署级设计元素指明软件功能和子系统将如何在支持软件的物理计算环境内分布。接口设计描述了软件和协作系统之间,软件和使用人员之间是如何通信的;构件级设计将软件体结构的结构化元素变换为对软件构件的过程性描述。软件的构件级设计完整的描述了每个软件构件的内部细节。体系结构设计定义了软件的主要结构化元素之间的关系﹔愉悦:使用程序的体验应是愉悦的。2.软件工程中的设计。

2023-08-16 10:18:51 184 1

原创 软件工程课程第十章-需求建模(行为建模)

UML状态图是一种行为模型,该图为每个类呈现了主动状态和导致这些主动状态发生变化的事件(触发器)2. 事件触发系统处理的事件。事件可能有相关的数据,尽管并非总是如此。:水平方向:正在行动的对象/参与者;垂直:时间(向下->向前时间)每个图通常表示单个类的对象,并跟踪其对象在系统中的不同。行为模型是系统执行时的动态行为模型。行为模型显示了软件如何对。1. 有些数据到达后需要系统处理。:在图表中作用的对象或实体。:参与者对象之间的通信。

2023-08-16 09:57:19 1068 2

原创 软件工程课程第九章-需求建模(基于类)

本文章主要讲述类图的绘制方法及基本知识点,如何分析类,定义类的属性,类的关系(关联和依赖、泛化、组合和聚合)

2023-08-16 08:51:18 553 1

原创 软件工程课程第八章--需求建模

活动图使用两端为半圆形的矩形表示一个特定的系统功能,箭头表示通过系统的流,菱形表示分支(标记从菱形发出的每个箭头),实水平线意味着并行发生的活动。增加了一些细节,用例图无法完成的细节,用户可以尝试有限次的输入账号和密码,通过“提示重新输入”的判定菱形来体现。如果系统还没有准备好,房主必须关闭窗户/门,以便准备指示灯显示。]只是帮助定义系统外部(参与者)和系统应该执行的内容(用例)。在技术层面上,软件工程师开始于一系列的建模工作,关注的是“是对系统感兴趣的各方,可以影响或受到系统的影响。

2023-08-16 08:41:58 563 1

原创 软件工程课程第七章-需求

软件工程双语教学,知识点集锦(超全)

2023-08-15 17:11:55 251

原创 软件工程课程第五章

(实施解决问题和实时质量保证的机制,使开发者能集中精力在手头的问题)之前先开发一系列用于检测本次(软件增量)发布的包括的所有故事的。”由客户定义并执行,以评估客户可见的功能。是敏捷软件开发中使用最广泛的一种方法。可以帮助程序员更好地理解系统需求。更重视人文、弱化文档、需求、过程。为什么测试先行,有什么好处?Scrum(敏捷开发)特点。(用户、管理人员),

2023-08-15 16:36:35 232

原创 软件工程第三、四章-过程模型

2. 逐步增加产品功能可以使用户有充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。2. 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。每个软件工程动作由任务集来定义,这个任务集明确了:①将要完成的工作任务,②将要产生的工作产品,③所需要的质量保证点,④用于表明过程状态的里程碑。电话打完:①录音/草记(打电话)②整理电话内容(整理)③回头沟通(确认)-整理文档给用户确认(可以邮件的形式发送)

2023-08-15 16:29:15 107

原创 软件工程第三、四章-过程模型

重点是一些惯用过程模型,包括瀑布模型,增量模型,并行模型,演化模型(原型模型,抛弃原型模型,螺旋模型)

2023-08-15 15:16:57 145

原创 软件工程课程第二章

软件过程将各个技术层次结合在一起,使得合理,及时地开发计算机软件成为可能。过程定义了一个框架,构建该框架是有效实施软件工程技术必不可少的。对于很多软件项目来说,随着项目的开展,框架活动可以迭代应用。在项目的多次迭代过程中,上述五个活动不断重复。每次项目迭代都会产生一个。,每个软件增量实现了部分的软件特性和功能。为构建软件提供技术上的解决方法(如何做)为过程和方法提供自动化或半自动化的支持。过程框架(包含框架活动和普适性活动)(上面三项框架活动由项目经理负责)1.需求分析:干什么。

2023-08-15 15:03:15 165

原创 计算机图形学实验二-实现圆的中点算法、椭圆的中点算法

F(X,Y) > 0 :(X,Y) 在椭圆外,这里还有一个特别注意的点,椭圆有上下两部分,而划分依据是(b^2)*x≥(a^2)*y与否,所以针对两个不同的部分,适时调整xy坐标,即当(b^2)*x≥(a^2)*y的时候,进行x坐标和y坐标的交换,这样就可继续使用设计的算法,原来的算法不会有太大的改动。前面两种算法的实现是基于用户在控制台的输入(圆的半径或者椭圆的长短轴),在实现两种算法的同时,我加入了鼠标的交互,即用户选择3(或者输入非1、2的字符),直接进入空白页面,鼠标右键点击弹出。

2023-08-15 14:53:09 929

原创 计算机图形学实验一

OpenGL环境配置,实现中点画线算法、Bresenham画线算法

2023-08-15 14:30:52 250

原创 软件工程课程第一章

横轴是时间,纵轴是失效率,在软件完整的生命周期中,将会面临变更(change),就会由于(变更的)副作用而导致失效率突然提高。不断地变更是软件退化的根本原因。措施:“重构”,不改变外部使用功能情况下(交互UI,功能等),改变了内部设计和代码实现。硬件是有形的,包括各种电子元件、器件和外部设备。硬件则是指计算机系统中的物理实体,包括计算机的各种组件和设备。硬件是更接近计算机的物理层面,执行和控制计算机的实际物理操作。硬件一般需要重新设计、制造和替换才能进行改变。硬件问题可能需要更复杂的维修和替换。

2023-08-15 11:39:18 112

原创 操作系统复习(思维导图)

针对内容繁杂的操作系统这门课程,自己根据知识点整理了相关的思维导读

2023-08-15 11:25:42 69

基于OpenGL的计算机图形学实验NURBS曲面算法

通过本次实验,将老师在课堂上讲解的曲线和曲面算法进行具体代码的实现,算法实现过程中遇到了一些问题,比如使用不同算法进行曲线绘制的时候,对于控制点和顶点的初始化把握不是很好,一开始实现了算法想定义一些点进行测试,结果绘制的效果不是很理想,通过百度查询以及搜索相关的资料,结合自己所写的代码,最终解决了问题并且可以实现交互式绘制曲线,曲面的绘制是在曲线的绘制基础上进行的,所以在实现的各个算法的曲线绘制后,通过复习老师上课讲的曲面绘制算法,也是成功完成了实验,但是一开始感觉绘制的曲面不好看,看到了曲面的光照处理,加以运用到代码当中去,这样使得曲面的效果更加好看。

2023-08-21

基于OpenGL的计算机图形学实验NURBS曲线算法

通过本次实验,将老师在课堂上讲解的曲线和曲面算法进行具体代码的实现,算法实现过程中遇到了一些问题,比如使用不同算法进行曲线绘制的时候,对于控制点和顶点的初始化把握不是很好,一开始实现了算法想定义一些点进行测试,结果绘制的效果不是很理想,通过百度查询以及搜索相关的资料,结合自己所写的代码,最终解决了问题并且可以实现交互式绘制曲线,曲面的绘制是在曲线的绘制基础上进行的,所以在实现的各个算法的曲线绘制后,通过复习老师上课讲的曲面绘制算法,也是成功完成了实验,但是一开始感觉绘制的曲面不好看,看到了曲面的光照处理,加以运用到代码当中去,这样使得曲面的效果更加好看。

2023-08-21

基于OpenGL的计算机图形学实验B样条曲面算法

通过本次实验,将老师在课堂上讲解的曲线和曲面算法进行具体代码的实现,算法实现过程中遇到了一些问题,比如使用不同算法进行曲线绘制的时候,对于控制点和顶点的初始化把握不是很好,一开始实现了算法想定义一些点进行测试,结果绘制的效果不是很理想,通过百度查询以及搜索相关的资料,结合自己所写的代码,最终解决了问题并且可以实现交互式绘制曲线,曲面的绘制是在曲线的绘制基础上进行的,所以在实现的各个算法的曲线绘制后,通过复习老师上课讲的曲面绘制算法,也是成功完成了实验,但是一开始感觉绘制的曲面不好看,看到了曲面的光照处理,加以运用到代码当中去,这样使得曲面的效果更加好看。

2023-08-21

基于OpenGL的计算机图形学实验B样条曲线算法(完整可运行版本)

通过本次实验,将老师在课堂上讲解的曲线和曲面算法进行具体代码的实现,算法实现过程中遇到了一些问题,比如使用不同算法进行曲线绘制的时候,对于控制点和顶点的初始化把握不是很好,一开始实现了算法想定义一些点进行测试,结果绘制的效果不是很理想,通过百度查询以及搜索相关的资料,结合自己所写的代码,最终解决了问题并且可以实现交互式绘制曲线,曲面的绘制是在曲线的绘制基础上进行的,所以在实现的各个算法的曲线绘制后,通过复习老师上课讲的曲面绘制算法,也是成功完成了实验,但是一开始感觉绘制的曲面不好看,看到了曲面的光照处理,加以运用到代码当中去,这样使得曲面的效果更加好看。

2023-08-21

基于OpenGL的计算机图形学实验Bezier曲面算法

通过本次实验,将老师在课堂上讲解的曲线和曲面算法进行具体代码的实现,算法实现过程中遇到了一些问题,比如使用不同算法进行曲线绘制的时候,对于控制点和顶点的初始化把握不是很好,一开始实现了算法想定义一些点进行测试,结果绘制的效果不是很理想,通过百度查询以及搜索相关的资料,结合自己所写的代码,最终解决了问题并且可以实现交互式绘制曲线,曲面的绘制是在曲线的绘制基础上进行的,所以在实现的各个算法的曲线绘制后,通过复习老师上课讲的曲面绘制算法,也是成功完成了实验,但是一开始感觉绘制的曲面不好看,看到了曲面的光照处理,加以运用到代码当中去,这样使得曲面的效果更加好看。

2023-08-21

基于OpenGL的计算机图形学实验Bezier曲线算法

通过本次实验,将老师在课堂上讲解的曲线和曲面算法进行具体代码的实现,算法实现过程中遇到了一些问题,比如使用不同算法进行曲线绘制的时候,对于控制点和顶点的初始化把握不是很好,一开始实现了算法想定义一些点进行测试,结果绘制的效果不是很理想,通过百度查询以及搜索相关的资料,结合自己所写的代码,最终解决了问题并且可以实现交互式绘制曲线,曲面的绘制是在曲线的绘制基础上进行的,所以在实现的各个算法的曲线绘制后,通过复习老师上课讲的曲面绘制算法,也是成功完成了实验,但是一开始感觉绘制的曲面不好看,看到了曲面的光照处理,加以运用到代码当中去,这样使得曲面的效果更加好看。

2023-08-21

基于OpenGL的计算机图形学实验七定义一个简单形体(OpenGL提供的基础形体,立方体、球体等),并生成正交投影及透视投影视图

通过本次实验,将老师在课堂上讲解的正交投影和透视投影进行具体代码的实现,如怎么利用OpenGL的函数绘制三维立方体,如何利用鼠标拖动调整观察姿态和位置,通过深入学习进而得以实现立方体的正交投影和透视投影。

2023-08-21

基于OpenGL的计算机图形学实验六多边形的Sutherland-Hodgman裁减算法(完整可运行版本)

通过本次实验,将老师在课堂上讲解的多边形裁剪算法进行具体代码的实现,比如判断顶点是否位于可见区域内,判断多边形顶点是否穿过裁剪窗口,通过深入学习老师上课所讲的内容,结合现有的实现代码,进而得以实现多边形裁剪算法,为了更友好的图形交互界面,在实现了基本算法之后,加入了裁剪窗口的平移和缩放操作,对之前实验加以复习和应用,以及顶点的输入问题,一开始我疑惑为什么鼠标点击的和实际形成的图形有所偏差,在打印出点击的坐标来之后,发现尽管设置了坐标系位于画布中间,但是没有改变点的坐标,所以在鼠标点击的基础上,加入用户输入顶点坐标的选项,这样就可以让图形的大小和位置更加多样化。

2023-08-21

基于OpenGL的计算机图形学实验五直线段的编码裁剪算(Cohen-SutherLand算法)(完整可运行直线段的编码裁剪算法)

通过本次实验,将老师在课堂上讲解的直线段裁剪算法进行具体代码的实现,第一次实验的扩展题目中,已采用了编码法进行直线段裁剪的算法来实现,所以本次实验中我重点研究的是NLN直线段裁剪算法,因为这个算法是对编码法裁剪线段的一个优化算法,在判断线段所属区域来降低求交次数。

2023-08-21

基于OpenGL的计算机图形学实验四简单几何形体(三角形、多边形等)的平移、缩放、旋转等几何变换(完整可运行版本)

通过本次实验,将老师在课堂上讲解的多边形集合变换算法进行具体代码的实现,对于多边形的几何变换从实现最基本的几何变换开始写起,一开始的图形也不要太过复杂,后面我在扩展功能的时候,才逐渐如鱼得水,说明理论应用到实践还是有点差距的,编程要由浅入深,功能要逐步扩展,切忌浮躁;第二个是矩阵的计算问题,发现没有矩阵的相乘函数,这就需要自己去编写,一开始用数组存放的矩阵,发现这样对于矩阵的计算太不方便,而且对于后面用户增加顶点操作也不好实现,转换思路,采用vector动态存放数组,这样初始化单位矩阵和实现矩阵的计算就没有太复杂了。

2023-08-21

基于OpenGL的计算机图形学实验三多边形的扫描转换算法(完整可运行版本)

通过本次实验,将老师在课堂上讲解的扫描线算法进行具体代码的实现,这种算法真的很巧妙,在解决逐点扫描算法的缺点的同时,还能够处理自交和带环多边形。由易入难的原则,先将基本的算法和画布生成代码实现,调试通过之后再考虑更加复杂的操作。在实验中也发现扫描线算法一些些缺点,但是扫描线算法已经针对大部分的多边形做出了合理的绘制,一个算法的提出不代表这个算法的结束,现在普遍致力于计算机性能的提升,算法的优化也是不可缺少的步骤。

2023-08-21

计算机图形学实验之实现圆的中点算法、椭圆的中点算法

基于OpenGL的C++代码,主要是实现圆的中点算法、椭圆的中点算法。加入了用户自定义选择选项和由用户自定义圆的半径和椭圆的长短轴选择,此外,若用户不想输入操作,则直接进入画布,在画布中点击鼠标右键即可自由选择绘制圆形或者椭圆形 算法优点:1、交互方便、直观 2、优化算法:只含整数运算、加减法运算

2023-08-15

计算机图形学实验一之Bresenham画线算法和中点画线算法(完整版代码,可运行)

本实验代码是基于OpenGL的C++代码,主要实现的Bresenham画线算法和中点画线算法,其中加入了算法效率分析和鼠标键盘的交互,以及较美观的图形化界面供大家截图书写报告使用。

2023-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除