首页
学习
活动
专区
工具
TVP
发布

图形学与OpenGL

专栏作者
113
文章
115169
阅读量
38
订阅数
实验3.2 一般直线的中点绘制算法
教材上的直线绘制算法只针对斜率0<k<1范围内的直线,很多教材也是如此。有一些教材上有针对一般直线即任意斜率直线的绘制算法,但是算法代码不是很容易懂。为了补上这一内容, 下面给出一般直线的中点绘制算法代码,供大家参考,也欢迎大家指正。 代码在VS2017可以正常运行,运行结果如后。
步行者08
2022-07-30
4140
实验10 Bezier曲线生成-实验提高-控制点生成B样条曲线
本代码根据已知控制点( 10, 5, 0 ),( 5, 10, 0 ),( -5, 15, 0 ),( -10, -5, 0 ),( 4, -4, 0 ),( 10, 5, 0 ), ( 5, 10, 0 ), ( -5, 15, 0 ), ( -10, -5, 0 ),( 10, 5, 0 )来生成三次B样条曲线。
步行者08
2022-06-12
4370
实验10 Bezier曲线生成-实验提高-交互式生成B样条曲线
本代码通过交互方式来生成三次B样条曲线。主要功能: 根据鼠标左键点击产生控制点,再由控制点生成三次B样条曲线; 鼠标右键弹出菜单“New B-Spline Curve”清除当前曲线,并开始新曲线。 #include <GL/glut.h> #include <stdio.h> #include <stdlib.h> #include <vector> using namespace std; struct Point { int c[2]; int& x = c[0]; int& y = c[1]
步行者08
2022-06-12
4520
freeglut与GLFW介绍及其差别
        OpenGL可以在多种不同的平台之上运行,并且与各种不同的窗口系统配合工作。它的设计目标是作为窗口系统的补充,而不是它们功能的重复。因此,OpenGL在二维平面或三维空间中执行几何图形和图像的渲染,但是它并不对窗口进行管理,也不会处理输入事件。
步行者08
2022-05-11
1.1K0
Windows下Visual Studio配置GLFW方法
网上配置GLFW的方法有很多,但是感觉介绍不是特别清楚,尤其是静态链接与动态链接GLFW设置。另外,一些配置方法中路径设置不是很合理。因此,本文对这些问题进行探索,以VS2017为例,给出了下面的三步配置方法。
步行者08
2022-05-11
9340
Markdown文件转pdf方法
虽然markdown很方便,但有时候为了其它目的,还是需要将它转为更通用的PDF格式的文档,比如博客上教材的勘误表太宽,在网页显示需要拖动水平下拉条才能浏览全部,因此有读者希望有一份pdf文件方便查看。本文就是记录一下最近在探索把Markdown转为pdf时候的两种简单方法。
步行者08
2020-10-29
10.1K0
实验10 Bezier曲线生成
(1)结合示范代码了解曲线生成原理与算法实现,尤其是Bezier曲线。 (2)调试、编译、修改示范程序。
步行者08
2020-10-29
1K0
实验11 B样条曲面生成
求值器能够描述任何角度的多项式或有理多项式样条或表面,包括B-样条,NURBS(非均匀有理B-样条)表面,Bezier曲线和表面,以及Hermite样条。由于求值器只提供了对曲线或表面底层描述,需要使用更高层次的NURBS接口来生成B样条曲面。 OpenGL提供了NURBS接口,该接口封装了大量代码,不仅包含渲染功能,也提供了修剪曲面等额外功能,NURBS函数使用平面多边形进行渲染。B样条曲面包含非均匀有理B-样条,另外Bezier的缺点是增加很多控制点时曲线变得不可控,而B样条曲面调整4个控制点可以得到较好的效果。 NURBS接口生成B样条曲面的过程如下。 (1)生成控制点和创建NURBS对象:
步行者08
2020-10-29
1.5K0
实验9 OpenGL光照
了解掌握OpenGL程序的光照与材质,能正确使用光源与材质函数设置所需的绘制效果。
步行者08
2020-10-27
4460
实验8 OpenGL太阳系动画
  模拟简单的太阳系,如图A.8所示。太阳在中心,地球每365天绕太阳转一周,月球每年绕地球转12周。另外,地球每天24个小时绕它自己的轴旋转。
步行者08
2020-10-27
2.1K0
实验7 3D机器人
(1) 熟悉视点观察函数的设置和使用。 (2) 熟悉3D图形变换的设置和使用。 (3) 进一步熟悉基本3D图元的绘制。 (4) 体验透视投影和正交投影的不同效果。 (5) 掌握简单机器人编程。
步行者08
2020-10-27
1.3K0
实验6 OpenGL模型视图变换
  (1)阅读教材有关三维图形变换原理,运行示范实验代码,掌握OPENGL程序三维图形变换的方法;   (2)阅读实验原理,运行示范实验代码,理解掌握OpenGL程序的模型视图变换。   (3)请分别调整观察变换矩阵、模型变换矩阵和投影变换矩阵的参数,观察变换结果;   (4)掌握三维观察流程、观察坐标系的确定、世界坐标系与观察坐标系之间的转换、平行投影和透视投影的特点,观察空间与规范化观察空间的概念。理解OpenGL图形库下视点函数、正交投影函数、透视投影函数。理解三维图形显示与观察代码实例。
步行者08
2020-10-27
1.9K0
实验5 OpenGL二维几何变换
(1)阅读实验原理,掌握OpenGL程序平移、旋转、缩放变换的方法。 (2)根据示范代码,完成实验作业。
步行者08
2020-10-27
2.2K2
实验4.1 编码裁剪算法(鼠标交互版)
本次实验主要结合鼠标画线程序来验证编码裁剪算法和实现梁友栋-Barsky裁剪算法,具体步骤如下:
步行者08
2020-10-27
5800
实验4 编码裁剪算法
(1) 理解直线裁剪的原理(Cohen-Surtherland算法、梁友栋算法)。 (2) 利用VC+OpenGL实现直线的编码裁剪算法,在屏幕上用一个封闭矩形裁剪任意一条直线。 (3) 调试、编译、修改程序。 (4) 尝试实现梁友栋裁剪算法。
步行者08
2020-10-27
1K0
实验3.1 直线光栅化(键盘交互版)
(1) 根据所给的直线光栅化的示范源程序,在计算机上编译运行,输出正确结果。 (2) 指出示范程序采用的算法,以此为基础将其改造为中点线算法或Bresenham算法,写入实验报告。 (3) 根据示范代码,将其改造为圆的光栅化算法,写入实验报告。 (4) 了解和使用OpenGL的生成直线的命令,来验证程序运行结果。
步行者08
2020-10-27
1.2K0
实验2 OpenGL交互
在OpenGL中处理鼠标事件非常方便,GLUT已经为我们注册好了函数,只需要我们提供一个方法。使用glutMouseFunc函数,就可以注册自定义函数,这样当发生鼠标事件时就会自动调用自己定义的方法。 函数的原型是:
步行者08
2020-10-27
1.2K0
第6章代码-三维造型
本实例参考了著名的Nehe OpenGL示例构建了四棱锥和立方体的实体模型,这两个模型的顶点位置如图6.13所示。可见,四棱锥的四个侧面的顶点序列分别为v0v1v2、v0v2v3、v0v3v4、v0v4v1,底面为v1v2v3v4。传递顶点信息时使用了glVertex3fv函数,以顶点首地址作为参数,比glVertex3f函数直接用顶点坐标作为参数的方式更为方便、直观。在坐标系原点建好的实体可以通过几何变换放置在任意不同的位置。在本示例中,四棱锥被放置在左侧,立方体被放置在右侧。
步行者08
2020-09-21
4380
第7章代码-真实感图形技术
7.8.4 编程实例——纹理映射 下面代码实现了把平面纹理映射在球面上的功能,运行结果如下图所示。 #include <GL/glut.h> #include <stdlib.h> #includ
步行者08
2020-09-21
4430
第5章代码-三维观察
目录 5.5 编程实例 5.5.1 二维实例——红蓝三角形 5.5.2 三维实例——立方体透视投影 5.5 编程实例 5.5.1 二维实例——红蓝三角形 #include <GL/glut.h> ty
步行者08
2020-09-19
4160
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档