跳转至

三角形重心坐标

英文: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} \]

每个点取 xy 两个分量带入计算就行,剩下的分量会自动满足要求

\[ \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 \]