OpenGL实现:交互式计算机图形学Sierpinski三角形程序
需积分: 16 148 浏览量
更新于2024-07-30
收藏 481KB DOC 举报
该资源是基于OpenGL实现的交互式计算机图形学教材的部分源代码,主要展示了二维Sierpinski地毯的生成程序。源码利用随机选取的顶点和二分法来创建图形。
在计算机图形学中,交互式计算图像是指用户能够实时与图形界面进行交互的一种技术。OpenGL是一种广泛使用的跨语言、跨平台的图形库,用于渲染2D、3D矢量图形。在本例中,开发者使用OpenGL的库函数`glut.h`来构建图形用户界面,并通过`gluOrtho2D`设置了一个50x50的正交投影视窗,确保图形在屏幕上的显示范围。
`myinit`函数负责初始化图形环境,设置了清除颜色为白色(`glClearColor(1.0,1.0,1.0,1.0)`)和绘制颜色为红色(`glColor3f(1.0,0.0,0.0)`)。同时,通过`glMatrixMode`和`glLoadIdentity`以及`gluOrtho2D`来设定投影矩阵和模型视图矩阵,以控制图形的显示方式和范围。
`display`函数是主要的绘制函数,首先清空颜色缓冲区,然后定义了一个三角形的顶点数组`vertices`。程序通过`rand()`生成随机数,选择三角形中的一个顶点,并计算这个顶点与当前点之间的中点,以此来生成Sierpinski地毯的结构。`glBegin(GL_POINTS)`和`glEnd()`之间的代码用于绘制点,这里用来表示地毯上的每一个小三角形。
Sierpinski地毯是一种分形几何图形,通过将初始三角形不断分割成四个等大小的小三角形,去除中间的一个,重复此过程得到。在这个程序中,`for`循环生成了5000个新点,每个新点都是随机选择的三角形顶点和现有点的中点,从而逐步形成Sierpinski地毯的迭代效果。
这段代码为学习OpenGL编程和理解交互式计算机图形学提供了一个很好的实践示例,同时也展示了如何利用随机数生成分形图案。通过修改和扩展这段代码,可以进一步探索其他分形图形或者实现更复杂的交互功能。
166 浏览量
2018-05-21 上传
304 浏览量
2017-11-27 上传
2016-10-20 上传
2022-09-15 上传
2024-02-18 上传
2024-01-05 上传
xiahawei
- 粉丝: 3
- 资源: 4
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践