glut实现雪花动态效果

glut实现雪花动态效果

  • 实验题目
  • 总体思路
  • 3.2主要函数说明
  • 按键操作
  • 实验结果

实验题目

1.绘制雪花
在这里插入图片描述

2.在屏幕的多个随机位置绘制雪花
3.使每朵雪花绕自己的中心旋转
4.使每朵雪花下降
5.翻页键控制相机视野,按UP键增加物体与观察者的距离,按DOWN键缩短。
6.按ESC键退出绘制窗口
7.如下图所示,绘制带有颜色填充的雪花。
在这里插入图片描述

8.当用户调整绘制窗口时,雪花的对称形状不会变形。
9.实现不同深度位置雪花之间的遮挡效果
10.为雪花设置材质,设置一个点光源,观察各参数变化下的光照效果。
11.将聚光灯绑定在旋转运动的相机上

总体思路

1.使用glut main函数模板,然后实现dispay()函数
2.Display函数首先设置world_dispay()画二维雪花
3.画雪花然后要实现随机出现雪花,雪花随中心旋转,雪花下降
4.实现fallen_snow类首先要实现float random(float min, float max)
5.然后去实现构造函数fallen_snow()
6.来初始化成员fscale;initDegree;speed;liveTime;ylocation;xlocation;deadTime;startTime;
7.这样可以用fscale来随机雪花出现位置,然后用系统时间计算生存周期限制下降速度,
8.用生存周期来不断让雪花随中心旋转
9.Pageup pagedown的键盘码笔记本的和台式的不一样,于是用[]来控制,控制距离viewz
10.在keyboard上面再加esc
11.雪花颜色填充在snow.frag中rgb颜色
12.窗口调整雪花对称不变形,如下图high,wide变换,不变形
在这里插入图片描述

13.遮挡,开启深度测试,enable,glclear
14.设置了材质和漫反射的光照还有点光源
15.在视口坐标设置聚光灯,可以设置二次和线性衰减参数

3.2主要函数说明

在这里插入图片描述

按键操作

在这里插入图片描述

实验结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52386.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【图解】Mask R-CNN 架构

Mask R-CNN 是一种自顶向下(top-down)的姿态估计模型,它是在 Faster R-CNN [44] 这个目标检测框架的基础上扩展而来的。目标检测是指从图像中检测出不同类别的物体,并且输出它们的边界框(bounding box)。 …

k8s概念-深入pod

回到目录 工作负载(workloads) 工作负载(workload)是在kubernetes集群中运行的应用程序。无论你的工作负载是单一服务还是多个一同工作的服务构成,在kubernetes中都可以使用pod来运行它 workloads分为pod与control…

js实现原型链污染,沙箱绕过

一、沙箱绕过 1.概念 沙箱绕过"是指攻击者利用各种方法和技术来规避或绕过应用程序或系统中的沙箱(sandbox)。沙箱是一种安全机制,用于隔离和限制应用程序的执行环境,从而防止恶意代码对系统造成损害。它常被用于隔离不受信…

【机器学习】Feature Engineering and Polynomial Regression

Feature Engineering and Polynomial Regression 1. 多项式特征2. 选择特征3. 缩放特征4. 复杂函数附录 首先,导入所需的库: import numpy as np import matplotlib.pyplot as plt from lab_utils_multi import zscore_normalize_features, run_gradien…

《C和指针》(6)指针

1、内存和地址 计算机的内存是由数以亿万计的位(bit)组成,每一个位可以容纳值0、1值。由于一个位所能表示的值的范围太有限,所以单独的位用处不大。通常许多为合成一组作为一个单位,这样就可以存储范围较大的值。下图…

VMware vSphere整体解决方案及实验拓扑

VMware vSphere整体解决方案及实验拓扑 VMware vSphere完整的解决方案 VMware vSphere有两个核心组件:ESXI,vCenter。ESXI实现的是单机虚拟化,而vCenter实现集群虚拟化,把所有的ESXI统一进行管理。当然了,要想是实现…

【福建事业单位-推理判断】03类别推理

【福建事业单位-推理判断】03类别推理 一、类别推理1.1语义关系考点一、近义反义关系(不需要严格的,意思相近即可)近义反义的二级辨析(感情色彩)考点二:比喻义、象征义 1.2 逻辑关系1.2.1全同关系&#xff…

提交App Store应用图标不能包含alpha通道

近日提交APP至App Store时遇到一个问题,在交付ipa时出现一个图标不符合规定的提示 翻译过来就是 资产验证失败(90717)应用商店图标无效。“HBuilder.App”中资产目录中的应用商店图标不能是透明的,也不能包含alpha通道。 因为我…

PHP8的数据类型转换-PHP8知识详解

什么是数据类型转换? 答:数据从一个类型转换成另外一个类型,就是数据类型转换。 在PHP8中,变量的类型就是由赋值决定的,也就是说,如果 string 赋值给 $var,然后 $var 的类型就是 string。之后…

flex 弹性布局

Flex 布局的使用 任何一个容器都可以指定为 Flex 布局。 .box{ display: flex; //flex作为display的一个属性使用 } 行内元素也可以使用 Flex 布局。 .box{ display: inline-flex; } 注意:设为 Flex 布局以后,子元素的float、clear和vertical-align…

c高级:day3

作业: 1. 整理思维导图 2.判断家目录下,普通文件的个数和目录文件的个数 #!/bin/bash ######################################################################## # File Name: zy1.sh # Created Time: 2023年08月04日 星期五 19时13分08秒 ##############################…

C++ __builtin_popcount函数作用

__builtin_popcount函数是系统自带的一个返回值是int/long/long long二进制1的个数的函数。 对于int,long, long long分别用一下三种函数: __builtin_popcount(unsigned int n)//返回值为int __builtin_popcountl(unsigned int n)//返回值为…