[原][c++][数学]osg常用图形数学算法小结
1.cos趋近
// a reasonable approximation of cosine interpolation
double
smoothStepInterp( double t ) {
return (t*t)*(3.0-2.0*t);
}
2.pow趋近
// rough approximation of pow(x,y)
double
powFast( double x, double y ) {
return x/(x+y-y*x);
}
3.
// accel/decel curve (a < 0 => decel)
double
accelerationInterp( double t, double a ) {
return a == 0.0? t : a > 0.0? powFast( t, a ) : 1.0 - powFast(1.0-t, -a);
}
4.
// normalized linear intep
osg::Vec3d nlerp(const osg::Vec3d& a, const osg::Vec3d& b, double t) {
double am = a.length(), bm = b.length();
osg::Vec3d c = a*(1.0-t) + b*t;
c.normalize();
c *= (1.0-t)*am + t*bm;
return c;
}
5.
// linear interp
osg::Vec3d lerp(const osg::Vec3d& a, const osg::Vec3d& b, double t) {
return a*(1.0-t) + b*t;
}
6.
osg::Matrix computeLocalToWorld(osg::Node* node) {
osg::Matrix m;
if ( node ) {
osg::NodePathList nodePaths = node->getParentalNodePaths();
if ( nodePaths.size() > ) {
m = osg::computeLocalToWorld( nodePaths[] );
}
else {
osg::Transform* t = dynamic_cast<osg::Transform*>(node);
if ( t ) {
t->computeLocalToWorldMatrix( m, 0L );
}
}
}
return m;
}
7.
osg::Vec3d computeWorld(osg::Node* node) {
return node ? osg::Vec3d(,,) * computeLocalToWorld(node) : osg::Vec3d(,,);
}
8.
double normalizeAzimRad( double input )
{
if(fabs(input) > *osg::PI)
input = fmod(input,*osg::PI);
if( input < -osg::PI ) input += osg::PI*2.0;
if( input > osg::PI ) input -= osg::PI*2.0;
return input;
}
[原][c++][数学]osg常用图形数学算法小结的更多相关文章
- Delphi 常用函数(数学函数)round、trunc、ceil和floor
源:Delphi 常用函数(数学函数)round.trunc.ceil和floor Delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里 ...
- 【python游戏编程之旅】第四篇---pygame中加载位图与常用的数学函数。
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame事件与设备轮询.http://www.cnblogs.com/msxh ...
- (转载)delphi 常用函数(数学)
delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里的函数,使用前要先 Uses Math.trunc 和 round 是 system ...
- 开源Math.NET基础数学类库使用(07)一些常用的数学物理常数
原文:[原创]开源Math.NET基础数学类库使用(07)一些常用的数学物理常数 本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/ ...
- 【python游戏编程04--加载位图与常用的数学函数】
一.pygame中常用的数学函数 首先介绍两个角度和弧度转换的函数 math.degress()和math.radians()用法很简单,只要将数值传进去然后接受返回值就可以 math.cos(ang ...
- iOS开发中常用的数学函数
iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...
- php常用函数——数学函数
php常用函数——数学函数
- python numpy常用的数学和统计函数
numpy模块的核心就是基于数组的运算,相比于列表和其他数据结构,数组的运算效率是最高的.在统计分析和挖掘过程中,经常会使用到numpy模块的函数,以下是常用的数学函数和统计函数: 常数p就是圆周率 ...
- 每天进步一点点------Alpha半透明图形叠加算法Matlab+Verilog实现
Alpha图形叠加算法Matlab+Verilog实现 1.1. Alpha算法的研究 Alpha通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明.不透明和半透明区域, ...
随机推荐
- close yield
close的方法主要是关闭子生成器,需要注意的有4点: 1.如果生成器close后,还继续next,会报错StopIteration [图片] 2.如果我捕获了异常,将GeneratorE ...
- intel webrtc 部署
org link conference server Configure the MCU server 1. set the maximum numbers of open files, runnin ...
- openvpn server setup
Set Up an OpenVPN Server client access 内部环境搭建
- Oracle Redo log 状态及工作原理解析
Oracle重做日志(redo log)是用来记录操作条目,用于数据库数据恢复.为了提高效率,oracle通常建议设置三组redo log.本文将对重做日志组的状态以及多种状态之间切换做解析,力求掌握 ...
- SQL server无法连接上服务器的相关问题
安装MySql以后,SQL server突然就连接不上服务器了,问了老师,说是啥进程关闭了,都打开了也没搞好,都准备重装了,结果看到度妈上面的一篇文献,原来是SQL server MSSQLSERV ...
- 值类型之间的相互转化,运算符,if条件判断,循环,函数
值类型之间的相互转化 number | string | boolean 一.转换为boolean=>Boolean(a); var num = 10; var s = '123'; var b ...
- Python3基础 dict pop 弹出指定键的项
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- oracle 之 安装后pl/sql登录报ora-12154
这个问题一开始困扰了很久. 查的资料是复制一小段代码到tnsnames.ora中 SID名 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ...
- C# 控制台运行 应用运行
https://blog.csdn.net/Koala_Ivy/article/details/79577830 开发遇到的问题 记录一下 前段时间捣鼓dotnetty框架,服务端写了一个控制台程序来 ...
- wamp phpcms部署网站问题
服务器使用自己的服务器,域名申请后通过信息服务iis管理器建网站,并将物理地址指定到wamp的www目录中的网站的根目录.这时候如果网站首页已经生成后访问域名将进入网站首页. 出现的问题: 1.导航( ...