OPENGL NEHE Lesson11 11课的计算公式推导
计算多边形公式推导:
条件x 离散的值从0到45; y离散的值从0到45; z是符合正弦波。
问题:
1 要求x’=f(x)映射到 x’ ∈[-4.5, 4.5], x ∈{0, 1, 2, …, 45}
2 要求y’= f(y) 映射到y’ ∈[-4.5, 4.5], y ∈{0, 1, 2, …, 45}
3 求出z的正弦波函数
解:
1 f(x) = kx + b => f(0) = -4.5 And f(45) = 4.5 联合求解 k = 1/5, b = -4.5
所以 x’=f(x)=x/5 – 4.5
这就是NEHE Lesson11中求解x用的方程式
2 f(y)同上
3 关于z首先清楚使z成为正弦波的另外一个参数是x还是y. 我们是一个在xoy平面的图像形成正弦波是是z变换形成正弦波,他是依赖x的。
通过上面的求解知道x’ ∈[-4.5, 4.5], 正弦波应该是z = sin(x) x∈[0, 2π] 那么需要将x’ ∈[-4.5, 4.5]映射到x’∈[0, 2π],这是一个简单的映射关系可以先映射到[-π, π]在影射到[0, 2π]。那就是先π*x/4.5 +π就映射到了[0,2π]
这样 z = f(x’)=sin(π*x’/4.5 +π) x’ ∈[-4.5, 4.5]
根据上面求出的结论 x’=f(x)=x/5 – 4.5 带入上面的方程式
z = sin(π*(x/5 – 4.5)/4.5 +π) = sin((x/(5*4.5)) * π) = sin((2x/45) *π)
我们再来看看NEHE Lesson11中求解z用的方程式
Z = sin((((x/5.0f)*40.0f)/360.0f)*3.141592654*2.0f)) = sin((x/5.0) * (40/360) *π*2) = sin((x/5)*(2/9)* π)=sin((2x/45)* π)
看这个方程式最后化简后和上面的一样。
以上就是NEHE Lesson11 11课的推导方法。
OPENGL NEHE Lesson11 11课的计算公式推导的更多相关文章
- 第11课 - enum, sizeof, typedef 分析
第11课 - enum, sizeof, typedef 分析 1. enum介绍 (1)enum是C语言中的一种自定义类型,和struct.union地位相同,格式如下: // enum每个值的最后 ...
- Js笔记-第11课
// 第11课 作用域精解 运行期上下文,当函数执行时,会创建一个成为执行期上下文的内部对象.一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行期上下文都是独 ...
- NeHe OpenGL教程 第二十七课:影子
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第二十一课:线的游戏
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第十一课:飘动的旗帜
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第二十课:蒙板
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第十三课:图像字体
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第八课:混合
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第七课:光照和键盘
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
随机推荐
- jQuery CircleCounter的环形倒计时效果
在线演示1 本地下载 使用jQuery插件CircleCounter生成的环形倒计时效果,这个插件使用HTML5画布生成动画效果,还不错,大家可以试试! 顺带手录制了个代码,大家不吝赐教:http:/ ...
- LESS详解之编译LESS
掌握LESS,必须先掌握LESS的编译.因为LESS是CSS预处理语言的一种,是一种动态语言.LESS可以运行在各种语言和环境中,包括浏览器端.服务器端等.就因为是一种CSS预处理语言,所以需要编 ...
- selenium 加载jquery
packagecom.example.tests; import staticorg.junit.Assert.*; importjava.util.*; importorg.junit.*; imp ...
- VB总结1-事件过程之键盘鼠标过程
事件过程:参考 (http://baike.baidu.com/view/1523990.htm) 事件是指对象对于外部动作的响应,当对象发生了某个事件,就会执行与此对象的这个事件相应的代码,这段代码 ...
- exception javax.crypto.BadPaddingException: Given final block not properly padded
exception javax.crypto.BadPaddingException: Given final block not properly padded CreationTime--20 ...
- Spring Boot 集成 GRPC
代码地址如下:http://www.demodashi.com/demo/14110.html 一.背景 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring ...
- Geeks Union-Find Algorithm Union By Rank and Path Compression 图环算法
相同是查找一个图是否有环的算法,可是这个算法非常牛逼,构造树的时候能够达到O(lgn)时间效率.n代表顶点数 原因是依据须要缩减了树的高度,也叫压缩路径(Path compression),名字非常高 ...
- Spring MVC Beginner’s Guide勘误表
- 17 submitted: last submission 09 Dec 2016 Page number: 213 Qauntity should be: Quantity Page numbe ...
- MySQL5.7 二进制源码包安装
一般平时安装MySQL都是源码包安装的,但是由于它的编译需要很长的时间,所以建议安装二进制免编译包.可以到MySQL官方网站去下载,也可以到comsenz官方网站下载,还有各大镜像站下载. 下载安装包 ...
- archlinux使用sudo
Sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等.这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性. Sudo不是对she ...