Cartesian Product(笛卡尔积)
内容同离散数学。
几个特别的集合
\(S^2\),在单位球面上的三维点的集合。
映射、函数、反函数
内容同离散数学。
三角学
书中提到的正弦余弦定理、半角公式、和差公式都已在高中学过,记录一些没学过的。
正切定理
\[\frac{a+b}{a-b}=\frac{tan\left(\frac{A+B}{2}\right)}{tan\left(\frac{A-B}{2}\right)} \]
海伦公式
\[S = \frac{1}{4}\sqrt{(a+b+c)(-a+b+c)(a-b+c)(a+b-c)} \]
重心坐标系
可以用三个点\(\bm{a,b,c}\)表示三角形。
假设三点不共线,则\(\bm{c-a},\bm{b-a}\)线性无关,即可以作为二维坐标的一组基底。
二维空间中任何一点都可以由
\[\bm{p}=\bm a+\beta(\bm{b-a})+\gamma(\bm{c-a}) \]
表示
整理得
\[\bm{p}=(1-\beta-\gamma)\bm a+\beta\bm{b}+\gamma\bm{c} \]
令
\[\alpha\equiv 1-\beta-\gamma \]
则有
\[\bm p(\alpha,\beta,\gamma)=\alpha\bm a+\beta\bm{b}+\gamma\bm{c} \]
其中
\[\alpha+\beta+\gamma = 1 \]
一个点在三角形内部当且仅当
\[0<\alpha<1,0<\beta<1,0<\gamma<1 \]
同时成立。也可以用向量叉乘的办法判断是否在内部。
对于三角形三个点\(A,B,C\),平面中一点\((x,y)\)可以表示为
\[(x,y) = \alpha A+\beta B+\gamma C \]
\[\alpha+\beta+\gamma=1 \]
其中有
\[\alpha = \frac{-(x-x_B)(y_C-y_B)+(y-y_B)(x_C-x_B)}{-(x_A-x_B)(y_C-y_B)+(y_A-y_B)(x_C-x_B)} \]
\[\beta = \frac{-(x-x_C)(y_A-y_C)+(y-y_C)(x_A-x_C)}{-(x_B-x_C)(y_A-y_C)+(y_B-y_C)(x_A-x_C)} \]
\[\gamma = 1-\alpha-\beta \]
运用重心坐标系进行颜色插值见第九章笔记。
另外,从另一个角度思考
\[\bm p = \alpha\bm a+\beta\bm b+\gamma\bm c\\ \alpha+\beta+\gamma = 1 \]
有
\[\bm p = (1-\beta-\gamma)\bm a+\beta\bm b+\gamma\bm c \]
\[\bm p = \bm a+\beta\overrightarrow{AB}+\beta\overrightarrow{AC} \]
\[0 = \overrightarrow{PA}+\beta\overrightarrow{AB}+\gamma\overrightarrow{AC} \]
也就是说,
\[\begin{bmatrix} 1 & \beta & \gamma \end{bmatrix} \begin{bmatrix} PA_x \\ AB_x \\ AC_x \end{bmatrix}=0 \]
\[\begin{bmatrix} 1 & \beta & \gamma \end{bmatrix} \begin{bmatrix} PA_y \\ AB_y \\ AC_y \end{bmatrix}=0 \]
也就是说,向量\((1,\beta,\gamma)\)是向量\((PA_x,AB_x,AC_x)\)和\((PA_y,AB_y,AC_y)\)的叉积。根据向量第一位是1可以转变一下符号。
这个方法代码相较于上一个方法比较简单。
向量
同高中和线性代数
积分
内容同高数。不过在计算机图形学里我们更注重数值而不是分析。
曲线、曲面
内容同高数。
Linear Interpolation(线性内插)
\[f(x)=y_i+\frac{x-x_i}{x_{i+1}-x_i}(y_{i+1}-y_i) \]
概率论
随机变量
\(X\),表示任意一个可能取值。
概率密度函数(PDF)
\(X\sim p(x)\),表示随机过程取值为\(x\)的相对概率。
概率的一些属性
- \(p_i\geq 0\)
- \(\sum_{i=1}^np_i=1\)
期望
\[E[X] = \sum_{i=1}^nx_ip_i \]
连续的情况
当随机变量\(X\)可以取一个连续的区间上的值。
显然此时也会有连续的概率密度函数。
并且
\[p(x)\geq 0,\int p(x)dx=1 \]
\[E[x]=\int xp(x)dx \]
随机变量的函数
随机变量的函数也是一个随机变量。
\[X\sim p(x)\\ Y=f(X) \]
\[E[Y]=E[f(X)]=\int f(x)p(x)dx \]
蒙特卡罗积分
蒙特卡洛积分的目的:想计算一个定积分,但是难以从分析意义上解出,希望在数值上求解。
方法:通过平均函数值的随机样本来估计函数的积分。
定义定积分如下:
\[\int_a^b f(x)dx \]
随机变量如下
\[X_i\sim p(x) \]
则蒙特卡洛估计值是:
\[F_N=\frac{1}{N}\sum_{i=1}^N\frac{f(X_i)}{p(X_i)} \]
如果随机变量是均匀的,或者说
\[X_i\sim p(x)=C \]
\(C\)是一个常数
那么,
\[\int_a^b p(x)dx=1 \]
\[\int_a^b Cdx=1 \]
\[C=\frac{1}{b-a} \]
此时基础蒙特卡洛估计值(Basic Monte Carlo Estimator)为
\[F_N=\frac{b-a}{N}\sum_{i=1}^N f(X_i) \]