所谓“3D数学”就是以数学方式精确地测量在三维空间中的位置、距离和角度。使用计算机执行此类计算的最常用的框架称为笛卡尔坐标系(Cartesian coordinate system)。

1.1 一维数学

自然数(Natural Number)是指用以计量事物的件数或表示事物次序的数。

有理数(Rational numbers)定义:可以表示为两个整数的比 实数定义:包括有理数和无理数(例如π)

对于自然数和整数的研究称作为离散数学(Discrete Mathematics),对于实数的学习称为连续数学(Continuous Mathematics)。

计算机图形学第一定律:如果它看起来正确,那就是对的。

1.2 二维笛卡尔空间

二维笛卡尔坐标空间就是我们常说的直角坐标系,二维笛卡尔坐标空间是可以无限延伸的。二维笛卡尔坐标空间由以下两条信息定义:

  • 每个二维笛卡尔坐标空间都有一个特殊的位置,称为原点(Origin),它是坐标的中心。
  • 每个二维笛卡尔坐标空间都有两条直线通过原点,每条线都称为轴(Axis),并且可以在两个相反的方向上无限延伸。

对于二维坐标而言,无论X轴和Y轴选取的方向如何,总是可以旋转坐标空间。坐标空间是用于精确指定位置的框架。

1.3 三维笛卡尔空间

所有的三维坐标空间都不相等,因为某些坐标系对不能相互对齐。有以下两种不同类型的三维坐标空间:左手坐标空间和右手坐标空间。如果两个坐标空间具有相同的旋向性(Handedness),则可以旋转它们使得轴对齐:如果两个坐标空间的旋向性相反,那么这就是不可能的。

image-20230310153108029

左手坐标系与右手坐标系的转换:交换一个轴的正负端即可。

  • 左旋坐标系

首先左手握拳,然后竖起大拇指,大拇指指向旋转轴的正方向(正值端);此时,围绕旋转轴的正向旋转方向就是其它四个手指卷曲的方向。在左手坐标系中,从旋转轴的正向看正向旋转的方向是顺时针的。

  • 右旋坐标系

首先右手握拳,然后竖起大拇指,大拇指指向旋转轴的正方向(正值端);此时,围绕旋转轴的正向旋转方向就是其它四个手指卷曲的方向。在右手坐标系中,从旋转轴的正向看正向旋转的方向是逆时针的。

image-20230310153709556

本书使用左手坐标系。

1.4 一些零散的基础知识介绍

  • 求和表达式

i=1nai=a1+a2+a3+...+an\sum_{i=1}^{n}a_i=a_1+a_2+a_3+...+a_n

  • 求积表达式

i=1nai=a1×a2×a3×...×an\prod_{i=1}^{n}a_i=a_1\times a_2\times a_3 \times ... \times a_n

  • 区间符号

闭区间(Closed Interval)也称为包含(Inclusive)区间,用” [ ”和” ] ”表示。
开区间(Open Interval)也称为排除(Exclusive)区间,用” ( ”和” ) ”表示。

[a,b]表示axb(a,b)表示a<x<b[a,b)表示ax<b(a,b]表示a<xb[a, b] 表示a \leq x \leq b \\ (a, b) 表示a < x < b \\ [a, b) 表示a \leq x < b \\ (a, b] 表示a < x \leq b

  • 角度、度数和弧度

角度可以用度数(Degree)和弧度(Radian)表示。

弧度:1rad=(180/π)57.29578度数:1=(π/180)rad0.01745329rad弧度:1 rad = (180/\pi)^\circ \approx 57.29578^\circ \\ 度数:1 ^\circ = (\pi/180)rad \approx 0.01745329rad

  • 三角函数

在一个直角三角形中,斜边为:𝑟,其中一条直角边为:𝑥,另一条直角边为:𝑦,直角边𝑥与斜边𝑟的夹角为:𝜃,则:

正弦:sinθ=𝑦/𝑟(对边/斜边)余弦:cosθ=𝑥/𝑟(邻边/斜边)正切:tanθ=𝑦/𝑥(对边/邻边)正割:secθ=𝑟/𝑥(斜边/邻边)余割:cscθ=𝑟/𝑦(斜边/对边)余切:cotθ=𝑥/𝑦(邻边/对边)推导出:secθ=1cosθtanθ=sinθcosθcosθ=1sinθcotθ=1tanθ=cosθsinθ正弦:\sin{\theta}=𝑦/𝑟(对边 / 斜边) \\ 余弦:\cos{\theta}=𝑥/𝑟(邻边 / 斜边) \\ 正切:\tan{\theta}=𝑦/𝑥(对边 / 邻边) \\ 正割:\sec{\theta}=𝑟/𝑥(斜边 / 邻边) \\ 余割:\csc{\theta}=𝑟/𝑦(斜边 / 对边) \\ 余切:\cot{\theta}=𝑥/𝑦(邻边 / 对边) \\ \\ 推导出:\\ \sec{\theta}=\frac{1}{\cos{\theta}} \\ \tan{\theta}=\frac{\sin{\theta}}{\cos{\theta}} \\ \cos{\theta}=\frac{1}{\sin{\theta}} \\ \cot{\theta}=\frac{1}{\tan{\theta}}=\frac{\cos{\theta}}{\sin{\theta}}

  • 三角函数恒等式

与对称性相关的基本恒等式

sin(θ)=sinθ,cos(θ)=cosθ,tan(θ)=tanθ.sin(π2θ)=cosθ,cos(π2θ)=sinθ,tan(π2θ)=cotθ\sin(-{\theta})=-\sin{\theta},\cos({-{\theta}})=\cos{\theta},\tan(-{\theta})=-\tan{\theta}. \\ \sin(\frac{\pi}{2}-{\theta})=\cos{\theta},cos(\frac{\pi}{2}-{\theta})=\sin{\theta},\tan(\frac{\pi}{2}-{\theta})=\cot{\theta}

毕达哥拉斯定理

a2+b2=c2a^2+b^2=c^2

毕达哥拉斯恒等式

sin2θ+cos2θ=1.1+tan2θ=sec2θ.1+cot2θ=csc2θ\sin^2\theta+\cos^2\theta=1. \\ 1+\tan^2\theta=\sec^2\theta. \\ 1+\cot^2\theta=\csc^2\theta

和或差恒等式

sin(a+b)=sinacosb+cosasinb,sin(ab)=sinacosbcosacosb,cos(a+b)=cosacosbsinasinb,cos(ab)=cosacosb+sinasinb,tan(a+b)=tana+tanb1tanatanb,tan(ab)=tanatanb1+tanatanb\sin(a+b)=\sin{a}\cos{b}+\cos{a}\sin{b}, \\ \sin(a-b)=\sin{a}\cos{b}-\cos{a}\cos{b}, \\ \cos(a+b)=\cos{a}\cos{b}-\sin{a}\sin{b}, \\ \cos(a-b)=\cos{a}\cos{b}+\sin{a}\sin{b}, \\ \tan(a+b)=\frac{\tan{a}+\tan{b}}{1-\tan{a}\tan{b}}, \\ \tan(a-b)=\frac{\tan{a}-\tan{b}}{1+\tan{a}\tan{b}} \\

等腰三角形恒等式

sin2θ=2sinθcosθ,cos2θ=cos2θsin2θ=2cos2θ1=12sin2θ,tan2θ=2tanθ1tan2θ\sin2\theta=2\sin\theta\cos\theta, \\ \cos2\theta=\cos^2\theta-\sin^2\theta=2\cos^2\theta-1=1-2\sin^2\theta, \\ \tan2\theta=\frac{2\tan\theta}{1-\tan^2\theta}

正弦定理

sinAa=sinBb=sinCc\frac{\sin{A}}{a}=\frac{\sin{B}}{b}=\frac{\sin{C}}{c}

余弦定理

a2=b2+c22bccosA,b2=a2+c22accosB,c2=a2+b22abcosCa^2=b^2+c^2-2bc\cos{A}, \\ b^2=a^2+c^2-2ac\cos{B}, \\ c^2=a^2+b^2-2ab\cos{C}

image-20230310173036222


引用:

  1. Dunn, F. and Parberry, I. (2011). 3D math primer for graphics and game development 2nd2^{nd}.