三角形重心坐标¶
英文:Barycentric Coordinates
使用 \((u,v,w)\) 表示 \(\triangle ABC\) 平面上的一点 \(P\),满足
\[ \begin{align} uA+vB+wC&=P\\ u+v+w&=1 \end{align} \]
每个点的系数:该点对面的三角形的有向面积除以总面积。
\[ \begin{align} u=\dfrac{S_{\triangle PBC}}{S_{\triangle ABC}}\\ v=\dfrac{S_{\triangle PAC}}{S_{\triangle ABC}}\\ w=\dfrac{S_{\triangle PAB}}{S_{\triangle ABC}} \end{align} \]
计算公式¶
解线性方程组
\[ \begin{bmatrix} A &B &C\\ 1 &1 &1 \end{bmatrix}\begin{bmatrix} u\\ v\\ w \end{bmatrix}=\begin{bmatrix} P\\ 1 \end{bmatrix} \]
每个点取 x
和 y
两个分量带入计算就行,剩下的分量会自动满足要求
\[ \begin{bmatrix} x_A &x_B &x_C\\ y_A &y_B &y_C\\ 1 &1 &1 \end{bmatrix}\begin{bmatrix} u\\ v\\ w \end{bmatrix}=\begin{bmatrix} x_P\\ y_P\\ 1 \end{bmatrix} \]
用 Cramer's rule 求解,例如
\[ u=\dfrac{\begin{vmatrix} x_P &x_B &x_C\\ y_P &y_B &y_C\\ 1 &1 &1 \end{vmatrix}}{\begin{vmatrix} x_A &x_B &x_C\\ y_A &y_B &y_C\\ 1 &1 &1 \end{vmatrix}} \]
上下两个行列式其实就是二维三角形有向面积公式,所以上式的含义是 \(\triangle PBC\) 和 \(\triangle ABC\) 投影在 \(XOY\) 平面上的有向面积的商。
点与三角形的位置关系¶
条件 | 位置 |
---|---|
\(u,v,w>0\) | 点在三角形内 |
\(u,v,w\) 至少一个为 \(0\) | 点在三角形某条边上 |
\(u,v,w\) 有两个为 \(0\) | 点在三角形某个顶点上 |
\(u,v,w\) 至少一个小于 \(0\) | 点在三角形外面 |
线性插值¶
若三角形顶点处 \(f(A),f(B),f(C)\) 已知,则三角形内或边上一点 \(P\) 插值为
\[ f(P)=uf(A)+vf(B)+wf(C) \]
积分¶
简化三角形上的二重积分
\[ \iint_{\triangle ABC} f(P) \mathrm{d}s=2S_{\triangle ABC} \int_0^1 \mathrm{d}v \int_0^{1-v} f(uA+vB+(1-u-v)C) \mathrm{d}u \]