- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第02章何和变换
第二章几何和变换几乎所有图形软件都以几何类(geometric classes, 这里指c++类)为基础.这些类表示了诸如点,向量,光线等等的数学构件. 由于我们在系统中会到处用到这些类, 良好的抽象和有效的实现至关重要. 本章会讲解pbrt的几何基础的接口和实现.几何类见文件 core/geometry.h 和core/geometry.cpp.变换矩阵见文件 core/transform.h 和core/transform.cpp.2.1 坐标系统pbrt用三个浮点数坐标值x,y,z来表示三维点,向量和法向量. 当然,这些值只有在一个给定的坐标系下才有意义: 给定一个原点和三个定义x,y,z轴的向量,就定义了这个坐标系(frame).在n维空间中, 坐标系的原点P0和其n个线性无关的基向量定义了n维仿射空间(affine space).所有空间中的向量V可以被表达成为基向量(V1,V2, ..., Vn)的线性组合:? ???V = s1V1 + s2V2 + ... + snVn? ?? ???(s1, s2, ... sn是唯一存在的一组纯量, 被称为V关于基(V1,V2...Vn)的表达).同样地, 对与点P而言, 它可用原点P0和基向量(V1,V2, ..., Vn)表达:? ???P = P0 +??s1V1 + s2V2 + ... + snVn以上讨论有点循环定义的味道: 要定义坐标系我们需要定义一个点和一组向量, 而点和向量只有在给定的一个坐标系下才有意义. 因此,我们需要一个标准坐标系, 其原点是(0,0,0), 基向量为(1,0,0), (0,1,0) 和(0,0,1).2.1.1 左/右手坐标系我们知道坐标系分左手坐标系和右手坐标系,pbrt用左手坐标系.2.2 向量Geometry Delcarations =? ?? ???class COREDLL Vector {? ? public:? ?? ???Vector Public Methods ? ?? ???Vector Public Data ? ? };一个向量表达了三维空间内的一个方向, 它由三个浮点数定义:Vector Public Data=? ? float x, y, z;? ?x,y,z被定义为公共成员, 不太符合C++的封装原则, 但我们这样做是为了代码的清晰和效率.缺省情况下, (x,y,z)被设成0. 用户可以选择给定任意值:Vector Public Methods=? ???Vector(float _x = 0, float _y = 0, float _z = 0)? ?? ?? ?? ?? ?? ?: x(_x), y(_y), z(_z) {? ? }2.2.1 向量运算向量加法运算:? ?? ? Vector Public Methods +=? ? Vector operator+(const Vector v) const {? ?? ???return Vector(x+v.x, y + v.y, z + v.z);? ? }? ? Vector operator+=(const Vector v) const {? ?? ???x += v.x;??y += v.y;??z += v.z;? ?? ???return *this;? ? }向量减法运算与上类似, 略.2.2.2 比例运算比例运算是纯量乘法, 即是将向量每个分量乘以一个纯量, 从而改变了它的长度.? ?? ? Vector Public Methods +=? ? Vector operator*(float f) const {? ?? ???return Vector(f*x,??f*y, f*z);? ? }? ? Vector operator*=(const Vector v) const {? ?? ???x??*=f;??y *= f;??z??*= f;? ?? ???return *this;? ? }? ?? ?Geometry Inline Functions =? ? inline Vector operator*(float f, const Vector v) {? ?? ???return v*f;? ? }??类似地,我们可以定义纯量除法 operator/ 和 operator /=, 此略.? ?Vector类还有一个取负值的单操作符定义, 用来返回一个方向相反的向量:? ?? ?? ? Vector Public Methods +=? ? Vector operator-() const {? ?? ???return Vector(-x, -y, -z);? ? }????下面两个函数可以用索
您可能关注的文档
- 离散数学八章 图论.ppt
- 离子液体的制及其在脱硫中的应用硕士毕业论文.doc
- 禽病学禽临床诊断彩色图谱49禽胃线虫病.ppt
- 禽病学禽临床诊断彩色图谱79肉鸡腹水综合症西南民族大学.ppt
- 禽病学禽病临床诊彩色图谱45禽毛滴虫病.ppt
- 禽病学禽病临床诊断彩色图谱67维生A缺乏症.ppt
- 禽病学禽病临床诊断色图谱65禽食盐中毒西南民族大学.ppt
- 禽病学禽病临床诊断彩色图谱0鸡新城疫西南民族大学.ppt
- 私营企业财务管理中存在问题及对策研究毕业论文究.doc
- 秋梨沟镇、翰章乡中低产改造项目可行性研究报告.doc
- 国际标准 IEC 61169-47:2015 EN Radio-frequency connectors - Part 47: Sectional specification for radio-frequency coaxial connectors with clamp coupling, typically for use in 75 Ω cable networks (type F-Quick) 无线电频率连接器 - 第47部分:用于无线电频率同轴连接器的部分规范,.pdf
- 国际标准 IEC 61158-5-17:2007 EN 工业通信网络 - 现场总线规范 - 第5-17部分:应用层服务定义 - 类型17元素 Industrial communication networks - Fieldbus specifications - Part 5-17: Application layer service definition - Type 17 elements.pdf
- 国际标准 IEC 61158-5-17:2007 EN Industrial communication networks - Fieldbus specifications - Part 5-17: Application layer service definition - Type 17 elements 工业通信网络 - 现场总线规范 - 第5-17部分:应用层服务定义 - 类型17元素.pdf
- 国际标准 IEC 60939-2-2:2004 EN_D 完整抑制无线电干扰滤波器单元-第2-2部分:空白详细规范-用于抑制电磁干扰的被动滤波器单元-仅需进行安全测试的滤波器(安全测试) Complete filter units for radio interference suppression - Part 2-2: Blank detail specification - Passive filter uits for electromagnetic interference .pdf
- 国际标准 IEC 60939-2-2:2004 EN_D Complete filter units for radio interference suppression - Part 2-2: Blank detail specification - Passive filter uits for electromagnetic interference suppression - Filters for which safety tests are required (safety.pdf
- 国际标准 IEC 60670-23:2006 EN-FR Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 23: Particular requirements for floor boxes and enclosures 家用和类似固定电气安装用电器配件的盒子与封闭装置——第23部分:地板箱和封闭装置的要求.pdf
- 国际标准 IEC 60670-23:2006 EN-FR 家用和类似固定电气安装用电器配件的盒子与封闭装置——第23部分:地板箱和封闭装置的要求 Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 23: Particular requirements for floor boxes and enclosures.pdf
- 2024版完整的货物运输合同书.doc
- 2024版无财产的离婚协议书书模板.doc
- 2024版委托融资租赁合同书书.doc
文档评论(0)