
计算机图形学OpenGL
文章平均质量分 89
基于OpenGL的图形学实验
敲键盘的敲
这个作者很懒,什么都没留下…
展开
-
计算机图形学实验八-Bezier、B样条、NURBS曲线曲面的绘制,满分报告,入股不亏!
3.1 实验数据和结果。原创 2023-08-21 10:49:53 · 1376 阅读 · 0 评论 -
计算机图形学实验七定义一个简单形体(OpenGL提供的基础形体,如立方体、球体等),并生成正交投影及透视投影视图
在本实验中,我才用自定义点的坐标,调用OpenGL库中的glVertex3fv函数进行立方体图形的绘制,针对两种投影方式(正交投影和透视投影),我定义了两种绘制窗口的函数,这样针对用户不同的选择,可以选择生成不同绘制窗口。关于调整观察姿态及位置(调整相机位置、姿态等)的问题,我采用鼠标拖动和鼠标点击检测的回调函数,这样随着鼠标的拖动和点击,就可以改变图形的坐标进而重新绘制图像渲染到窗口上,就可以实现利用鼠标拖动来调整观察姿态及位置。正交投影和透视投影均放了两张图,是鼠标拖动后的不同观察效果。原创 2023-08-21 09:48:46 · 1230 阅读 · 2 评论 -
计算机图形学实验六-多边形的Sutherland-Hodgman裁减算法
这里绘制多边形,顶点的输入有两种形式,一个是鼠标点击,一个是用户手动输入,因为这里选择的OpenGL 中的模型视图矩阵堆栈是GL_MODELVIEW,这样相当于设置坐标轴位于画布中间,但是用户鼠标点击的时候,存入的顶点根据输出验证可以看出均为正值,说明这里用户用鼠标点击绘制的图像只能位于第一象限,若想让图像均匀分布在画布上,或者用户想精准绘制多边形,则可选用键盘输入的选项,若用户只是想快速绘制多边形,观察裁剪效果,则可以选择鼠标点击绘制多边形,若绘制结果不理想,可以按下键盘上的0键,重新绘制。原创 2023-08-21 09:29:50 · 1304 阅读 · 1 评论 -
计算机图形学实验五-直线段的编码裁剪算法(Cohen-SutherLand算法)
连接和裁剪区域的4个角点的直线分别记为LT、RT、LB、RB,通过比较P0P1和这四条直线的斜率,可以确定直线的可见性、直线与区域边界的交点个数及交点所在边界。:参考Cohen-SutherLand算法的编码形式,定义编码函数,得到传入的点的坐标,首先判断是否完全可见,完全可见则直接绘制,完全不可见则直接抛弃,以上两种情况均不符合则为部分可见的情况,则开始判断起点所处的区域,针对三个不同的区域进行不同区域的处理,根据不同的斜率值进行不同交点的求解,这里就体现了NLN直线段裁剪算法的。原创 2023-08-21 09:20:32 · 2763 阅读 · 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 · 1911 阅读 · 1 评论 -
计算机图形学实验三-多边形的扫描转换算法
根据输出无疑OpenGL自带的绘制多边形的算法要远快于扫描线算法的,这是因为OpenGL自带的绘制多边形的算法比较简单,对输入的顶点进行首尾一次连接画线即可,但同时也带来了算法的缺点,即无法处理自交和带环的多边形,而扫描线算法在处理特殊多边形上优势较大,并且扫描线算法是对逐点判断法的一个很大的改进,综合说明,扫描线算法是一个相对优秀的算法。由键盘输入的凸多边形,在画布范围内的绘制均可填充,所以该算法处理任意凸多边形,下面对鼠标和键盘的交互加以具体说明。,输出执行10000次的时间,进行算法效率的对比。原创 2023-08-21 08:51:48 · 1004 阅读 · 5 评论 -
计算机图形学实验二-实现圆的中点算法、椭圆的中点算法
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 · 933 阅读 · 0 评论 -
计算机图形学实验一
OpenGL环境配置,实现中点画线算法、Bresenham画线算法原创 2023-08-15 14:30:52 · 253 阅读 · 0 评论