[原][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级灰度来记录图像中的透明度信息,定义透明.不透明和半透明区域, ...
随机推荐
- AngularJS之登录显示用户名
效果图:在这里会显示出来用户名 使用AngularJs进行这样效果 第一步:写ng-app // 定义模块: var app = angular.module("pinyougou" ...
- 通过RMAN 识别失败数据库损坏的对象
背景 业务起不来,读取数据库时报坏块,无法读取数据 数据库版本:11.2.0.3 数据库无备份,无归档 1. 识别坏块 执行以下命令后,rman 会把坏块信息统计到 v$database_block_ ...
- 安装虚拟环境virtualenvwrapper和django
以下操作在windows平台进行 1.安装虚拟环境virtualenvwrapper 首先需要安装python管理工具pip,安装完python3.7之后自带了pip,可通过where pip查看管理 ...
- Python3 根据m3u8下载视频,批量下载ts文件并且合并
Python3 根据m3u8下载视频,批量下载ts文件并且合并 m3u8是苹果公司推出一种视频播放标准,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少 ...
- 搭建一个简单的svn服务器(旧)
cenos 6.5,svnserver 1.6.11 默认可能已经安装,没有的话就: yum install svn -ysvnserver --version 创建一个svn仓库: svnadmin ...
- javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 解决方法
在使用hibernate validator进行参数有效性校验的时候,我们有时候会遇到javax.validation.UnexpectedTypeException: HV000030: No va ...
- centos6.8防火墙模块未加载
使用阿里云服务器下的centos6.8系统,开启或关系或查询防火墙的状态时,提示防火墙模块未加载. 解决办法: modprobe ip_tables #加载ip_tables模块 modprobe i ...
- topcoder srm 707 div1
1 构造一个棋盘,长宽n,m不超过50,每个格子为障碍或者非障碍两种,使得从(0,0)到(n-1,m-1)的最短路为给定的值k. 思路:如果k小于等于98,那么一定存在没有障碍的棋盘满足要求.否则,最 ...
- 浅谈Log4j2日志框架及使用
目录 1.日志框架 2.为什么需要日志接口,直接使用具体的实现不就行了吗? 3.log4j2日志级别 4.log4j2配置文件的优先级 5.对于log4j2配置文件的理解 6.对于Appender的理 ...
- excel2010的使用笔记
新增的 "工具" 主选项卡 不管是word还是excel 的2010 , 在进行编辑一些图片, 图表, 表格等工具的时候, 都会 "动态"的生成相应的 &quo ...