关闭

Real-Time Rendering-附录B 三角函数

标签: 三角函数反函数导数
609人阅读 评论(0) 收藏 举报
分类:

Appendix B Trigonometry(附录B 三角函数)

“Life is good for only two things, discovering mathematics and teaching mathematics.”
-Simeon Poisson

附录B部分的内容旨在作为一些简单的三角函数定理的参考,同时还包含一些更复杂的定理公式。三角函数定理是计算机图形学中特别重要的工具函数。其中一个非常实用的功能是三角函数提供了简化公式的方法,从而提高计算的速度。

B.1 Definitions(定义)

这里写图片描述
图B.1 左图中显示了三角函数sincostan的几何定义表示。右图中显示了px=cosϕpy=sinϕ共同描绘出的循环周期。

如图B.1所示,其中p=(px,py)是一个单位向量,即p=1,公式B.1中定义了基本的三角函数,sincostan

Fundamental trigonometric functions:sinϕ=pycosϕ=pxtanϕ=sinϕcosϕ=pypx(B.1)

如公式B.2所示,sincostan函数可以扩展成MacLaurin series(麦克劳林级数)。麦克劳林级数是更通用的Taylor serices(泰勒级数)的一种特殊情况。泰勒级数是对一个任意的点进行扩展,而麦克劳林级数则是只针对x=0的点进行扩展。

麦克劳林级数是非常有用的,因为该公式阐明了导数的一些来源(如公式B.4所示)。

MacLaurin serices:sinϕ=ϕϕ33!+ϕ55!ϕ77!++(1)nϕ2n+1(2n+1)!+cosϕ=1ϕ22!+ϕ44!ϕ66!++(1)nϕ2n(2n)!+tanϕ=ϕ+ϕ33+2ϕ515++(1)n122n(22n1)(2n)!B2nϕ2n1+(B.2)

在前两个级数中 ϕ 的取值范围为<ϕ<,而最后一个级数中则为π/2<ϕ<π/2,并且 Bn 表示第 n 个Bernoulli number(伯努利数)。

注:伯努利数可以使用一种递推公式生成,比如令B0=1,对于k>1,有k1j=0(kj)Bj=0

这三个基本三角函数的反函数分别为,arcsinarccosarctan,定义如公式B.3所示:

Inverses of trigonometric functions:py=sinϕϕ=arcsinpy,1py1,π2ϕπ2px=cosϕϕ=arccospx,1px1,0ϕπpypx=tanϕϕ=arctanpypx,pypx,π2ϕπ2(B.3)

基本三角函数和反函数的导数总结如下:

Trigonometric derivatives:dsinϕdϕ=cosϕdcosϕdϕ=sinϕdtanϕdϕ=1cos2ϕ=1+tan2ϕdarcsintdt=11t2darccostdt=11t2darctantdt=11+t2(B.4)

B.2 Trigonometric Laws and Formulae

这里写图片描述
图B.2 直角三角形及相关的记号表示

我们首先讨论直角三角形的基本定理。使用图B.2所示的记号,可以使用以下公式描述这些定理:

Right triangle laws:sinα=accosα=bctanα=sinαcosα=ab(B.5)

Pythagorean relation:c2=a2+b2(B.6)

这里写图片描述
图B.3 任意三角形及相关的记号表示

以下的著名定理对于任意的三角形都是有效的,其中所使用的记号如图B.3所示:

Law of sines:Law of cosines:Law of tangents:sinαa=sinβb=sinγcc2=a2+b22abcosγa+bab=tanα+β2tanαβ2(B.7)

此外,以下两个公式对任意的三角形也是有效的,这两个公式分别以发明者的姓名进行命名:
Newton's formula :Mollweide's formula :b+ca=cosβγ2sinα2bca=sinβγ2cosα2(B.8)

把三角函数的定义(公式B.1)与勾股定理(公式B.6)相结合可以得到以下的三角恒等式:
Trigonometric identity:cos2ϕ+sin2ϕ=1(B.6)

接下来描述三角函数的倍角公式,使用这些公式可以简化计算,并使得公式的实现更加高效。二倍角公式如下所示:
Double angle relations:sin2ϕ=2sinϕcosϕ=2tanϕ1+tan2ϕcos2ϕ=cos2ϕsin2ϕ=12sin2ϕ=2cos2ϕ1=1tan2ϕ1+tan2ϕtan2ϕ=2tanϕ1tan2ϕ(B.10)

在些基础上做一些扩展可以得到三倍角公式,如下所示:
Multiple angle relations:sin(nϕ)=2sin((n1)ϕ)cosϕsin((n2)ϕ)cos(nϕ)=2cos((n1)ϕ)cosϕcos((n2)ϕ)tan(nϕ)=tan((n1)ϕ)+tanϕ1tan((n1)ϕ)tanϕ(B.11)

公式B.12和B.13列出了三角函数的和差定理,称为和差恒等式。
Angle sum relations:sin(ϕ+ρ)=sinϕcosρ+cosϕsinρcos(ϕ+ρ)=cosϕcosρsinϕsinρtan(ϕ+ρ)=tanϕ+tanρ1tanϕtanρ(B.12)

Angle difference relations:sin(ϕρ)=sinϕcosρcosϕsinρcos(ϕρ)=cosϕcosρ+sinϕsinρtan(ϕρ)=tanϕtanρ1+tanϕtanρ(B.13)

接下来是积化和差公式:
Product relations:sinϕsinρ=12(cos(ϕρ)cos(ϕ+ρ))cosϕcosρ=12(cos(ϕρ)+cos(ϕ+ρ))sinϕcosρ=12(sin(ϕρ)+sin(ϕ+ρ))(B.14)

公式B.15和B.16分别为和差化积公式和半角公式。
Function sums and differences:sinϕ+sinρ=2sinϕ+ρ2cosϕρ2cosϕ+cosρ=2cosϕ+ρ2cosϕρ2tanϕ+tanρ=sin(ϕ+ρ)cosϕcosρsinϕsinρ=2cosϕ+ρ2sinϕρ2cosϕcosρ=2sinϕ+ρ2sinϕρ2tanϕtanρ=sin(ϕρ)cosϕcosρ(B.15)

Half-angle relations:sinϕ2=±1cosϕ2cosϕ2=±1+cosϕ2tanϕ2=±1cosϕ1+cosϕ=1cosϕsinϕ=sinϕ1+cosϕ(B.15)

Further Reading and Resources

Graphics Gems一书中的第一章提供了计算机图形学中其他的非常实用的几何定理。在CRC Standard Mathematical Tables and Formulas第31版中包含了该附录中的所有定理公式,以及更多附录中没有提到的部分。

1
0
查看评论

Real-Time Rendering-附录A 线性代数

Appendix A Some Linear Algebra(附录A 部分线性代数知识) A point is that which has no part. A line is a breadthless length. The extremities of a line are ...
  • chenjinxian_3D
  • chenjinxian_3D
  • 2016-08-19 21:59
  • 1887

Real-Time Rendering-附录A 线性代数(2)

A.3 Matrices(矩阵)这一节主要讲述关于矩阵的定义,以及一些常用的矩阵运算。尽管在附录中(主要)讨论任意大小的矩阵,但是在本书的正文章节中将会使用2×22\times 2,3×33\times3以及4×44\times4的方阵。在第4章讲解了使用矩阵处理变换操...
  • chenjinxian_3D
  • chenjinxian_3D
  • 2016-08-22 23:59
  • 1550

Real-Time Rendering-第一章 Introduction

第一章 Introduction(导论)实时渲染主要是有关使用计算机如何快速生成图像的过程,这是计算机图形学中最具有交互性的领域。交互性是指在屏幕上显示了一幅图像,观察者会据此作出某些行动或反应,并反馈给计算机以生成下一幅图像。当这种不断反应并渲染的循环过程执行的速度足够快时,观察就会沉浸在一种动态...
  • chenjinxian_3D
  • chenjinxian_3D
  • 2016-08-16 23:28
  • 1046

Real-Time Rendering-第四章 Transforms

第四章 变换(Transforms) ”What if angry vectors veer Round your sleeping head, and form. There’s never need to fear Violence of the poor world’s ...
  • chenjinxian_3D
  • chenjinxian_3D
  • 2016-09-24 13:18
  • 948

算法导论附录B的一题,关于对称,传递,自反

在算法导论中看到一道题:如果关系R是对称、传递的,那么它也是自反的,对吗?(B.2-5) 从等价的定义关系我们就知道,这个问题肯定是错误的,但是narcissus教授的推断似乎也是天衣无缝啊! 下面是我看到的一种说法: ---------------------------
  • viva_6059
  • viva_6059
  • 2011-10-08 17:19
  • 793

算法导论: 附录A,B, C

   相对于刚看完的两章,这两章算是看的相当舒服了。附录A: 求和    主要讲关于求和的一些公式和概念, 当年微积分学的还不错, 轻松看完。附录B: 集合等离散数据结构    介绍了集合、图、树的各种概念,以及少量的证...
  • dummyedu
  • dummyedu
  • 2007-01-11 12:54
  • 1512

编译原理及实践教材TINY编译器代码解析

<br />    编译原理及实践教材附带了TINY编译器,在这里对这个小型编译器的代码,做一下简单的解析.<br />   TINY编译器的词法分析Lex源程序是:<br />%{<br />#inc...
  • bingfox
  • bingfox
  • 2010-06-28 09:30
  • 4009

Lex/Yacc的学习——《编译原理及实践》附录B tiny编译器源码在linux下编译实现

首先,在网上下载tiny编译器源码。      解压后,发现内部
  • gaixm
  • gaixm
  • 2014-06-17 20:22
  • 1682

Real-Time Rendering-第四章 Transforms(5)

4.6 Projections在进行真正的场景渲染之前,必须把场景中的所有相关对象都投影到某个平面上或某种简单的包围体内。完成投影之后,就开始执行裁和渲染操作(见第2.3节)。到目前为止,本章中的变换操作都没有使用到向量的第四个元素分量,ww-分量。也就是说,点和向量在变换后依然为保持为原来的类型。...
  • chenjinxian_3D
  • chenjinxian_3D
  • 2016-10-31 13:32
  • 1830

Real-Time Rendering-第五章 Visual Appearance

第五章 Visual Appearance(视觉外观) “A good picture is equivalent to a good deed.” \qquad—Vincent Van Gogh 当你渲染三维模型的图像时,模型不仅应该具有正确的几何形状,还应该具有期望的视觉外观。在很多情...
  • chenjinxian_3D
  • chenjinxian_3D
  • 2016-11-01 23:16
  • 769
    个人资料
    • 访问:85482次
    • 积分:1811
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:0篇
    • 译文:81篇
    • 评论:75条
    最新评论