ogre数学教材.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?  HYPERLINK /pizi0475/article/details/5451220 OGRE中的数学 分类:? HYPERLINK /pizi0475/article/category/551801 OGRE2010-04-05 10:54?1198人阅读? HYPERLINK /pizi0475/article/details/5451220 \l comments 评论(0)? HYPERLINK javascript:void(0); \o 收藏 收藏? HYPERLINK /pizi0475/article/details/5451220 \l report \o 举报 举报  HYPERLINK /tag/vector \t _blank vector HYPERLINK /tag/matrix \t _blank matrix HYPERLINK /tag/math \t _blank math HYPERLINK /tag/%e6%b1%87%e7%bc%96 \t _blank 汇编 HYPERLINK /tag/math.h \t _blank math.h HYPERLINK /tag/%e6%95%b0%e5%ad%a6%e8%ae%a1%e7%ae%97 \t _blank 数学计算 Mage小组 著 Email:? HYPERLINK mailto:norman_chen@163.com norman_chen@163.com?  HYPERLINK mailto:renwind@163.com renwind@163.com QQ: HYPERLINK /   HYPERLINK /pizi0475 /pizi0475 ? ? OGRE是一个三维图形渲染引擎,在很多处理过程中都需要使用到数学这一基本手段,除了简单数学计算以外还需要用到大量的矩阵运算。在OGRE中提供了数学支撑环境,它们分别封装在math、Vector3、Vector4、Matrix3、Matrix4和Quaternion类里,对于特殊的需要极高效率的数学函数用汇编方式实现在asm_math.h文件中。 asm_math.h 在本头文件中针对不同的开发平台(MSVC和GNUC,但GUNC不支持嵌入汇编程序,所以对于GNUC其实还是调用其运行库函数)用汇编程序的方式实现了非常需要高效率的数学函数。其中包括asm_arccos、asm_arcsin、asm_arctan、asm_sin、asm_cos、asm_tan、asm_sqrt、asm_rsq、apx_rsq、apx_rsq、InvSqrt、asm_rand、asm_rand_max、asm_ln等函数。一般不需要由应用开发者直接调用这里定义的函数,这些函数常由Math类调用。 暂时不讲 ? Math类 本类封装了基本的数学函数,大部分函数都是C运行库中相应函数的别名,使用这种方式的原因在于可以在这里提供额外的特性。 Math类中的成员函数除构造和析构函数以外都是采用静态函数的方式提供的,其数据成员也都是静态成员。又由于Math类的实例化是由Root自动进行的,所以在使用的时候只需要以这样的格式调用数学函数就可以了:Math::函数名( )或Math:: getSingleton( ).函数名() Math类中的数学常量 在Math类中提供了部分使用频繁的常量。 POS_INFINITY: 定义如下: const Real Math::POS_INFINITY = std::numeric_limitsReal::infinity(); NEG_INFINITY: 定义如下: const Real Math::NEG_INFINITY = -std::numeric_limitsReal::infinity(); PI: 通过用汇编实现的tan函数(atan)计算出来的圆周率。 定义如下: const Real Math::PI = Real( 4.0 * atan( 1.0 ) ); TWO_PI: 定义如下: const Real Math::TWO_PI = Real( 2.0 * PI ); HALF_PI: PI的二分之一: const Real Math::HALF_PI = Real( 0.5 * PI ); ? 数学函数速查表 取整数绝对值。 int Math::IAbs (int iValue)??? 取大于参数的最小整数。 int Math::ICeil (float fValue) 取小于参数的最大整数。 int Math::IFloor

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档