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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值