数学中,重心坐标是由单形(如三角形或四面体等)顶点定义的坐标。重心坐标是齐次坐标的一种。
设v1, ..., vn是向量空间V中一个单形的顶点,如果V中某点p满足,
![{\displaystyle (\lambda _{1}+\cdots +\lambda _{n})\,p=\lambda _{1}\,v_{1}+\cdots +\lambda _{n}\,v_{n},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/def2bfb7b20fc81c73421c2c5cd28b70f0a8fbbd)
那么我们称系数(λ1, ..., λn)是 p关于v1, ..., vn的重心坐标。这些顶点自己的坐标分别是(1, 0, 0, ..., 0),(0, 1, 0, ..., 0), ...,(0, 0, 0, ..., 1)。重心坐标不是惟一的:对任何不等于零的k,(k λ1, ..., k λn)也是p的重心坐标。但总可以取坐标满足
λ1 + ...+ λn = 1,称为正规化坐标。注意到定义式在仿射变换下不变,故重心坐标具有仿射不变性。
如果坐标分量都非负,则p在v1, ..., vn的凸包内部,即由这些顶点组成的单形包含p。我们设想如果有质量λ1, ..., λn分别位于单形的顶点,那么质量中心就是p。这是术语“重心”的起源,1827年由奥古斯特·费迪南德·莫比乌斯最初引入。
在三角形情形中,重心坐标也叫面积坐标,因为P点关于三角形ABC的重心坐标和三角形PBC, PCA及PAB的(有向)面积成比例,证明如下(如右图所示)。
我们用黑体小写字母表示对应点的向量,比如三角形ABC顶点为
和
,P点为
等。设PBC, PCA及PAB面积之比为
且
,设射线AP与BC交于D,则
从而![{\displaystyle {\textbf {d}}={\frac {\lambda _{2}{\textbf {b}}+\lambda _{3}{\textbf {c}}}{\lambda _{2}+\lambda _{3}}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/af6a1184f8a52728d1f9df004d60588c36e92050)
,故
![{\displaystyle {\textbf {p}}={\frac {(\lambda _{2}+\lambda _{3}){\textbf {d}}+\lambda _{1}{\textbf {a}}}{\lambda _{1}+\lambda _{2}+\lambda _{3}}}\,,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/20df0b332cc968ae20c20ca989e7436f28a1ae39)
![{\displaystyle {\textbf {p}}=\lambda _{1}{\textbf {a}}+\lambda _{2}{\textbf {b}}+\lambda _{3}{\textbf {c}}\,.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1fb71219360701f89b6692effdf9d3cd5d782dcc)
所以,
就是P的重心坐标。
给定三角形平面一点P,我们将这一点的面积坐标
,
和
用笛卡尔坐标表示出来。
利用笛卡尔坐标中的三角形面积公式:
![{\displaystyle S(ABC)={\frac {1}{2}}{\begin{vmatrix}1&x_{a}&y_{a}\\1&x_{b}&y_{b}\\1&x_{c}&y_{c}\\\end{vmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1070073d1cd0857900c0c0e36d4f3d2d7f5fbd73)
我们可得:
![{\displaystyle \lambda _{1}=S(PBC)/S(ABC)={\begin{vmatrix}1&x_{p}&y_{p}\\1&x_{b}&y_{b}\\1&x_{c}&y_{c}\\\end{vmatrix}}/{\begin{vmatrix}1&x_{a}&y_{a}\\1&x_{b}&y_{b}\\1&x_{c}&y_{c}\\\end{vmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d6093b7f6edfb7e2619f7529befbb8278ebf8ed7)
类似地有
,注意ABC构成一个三角形,上式的分母不可能为0。
反过来则简单得多:
故
和
![{\displaystyle y_{p}=\lambda _{1}y_{a}+\lambda _{2}y_{b}+\lambda _{3}y_{c}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/abb9a2b90e3de1bd5d6f2bc192e1aab3201cc4fe)
因重心坐标是笛卡尔坐标的一个线性变换,从而它们在边和三角形区域之间的变化是线性的。如果点在三角形内部,那么所有重心坐标属于开区间
;如果一点在三角形的边上,至少有一个面积坐标
为0,其余分量位于闭区间
。如果有某个坐标小于0,则位于三角形外部,具体分布可参考上图。
图示中,B和C顶端的坐标正负反了,B的应该是(-,+,-),C的是(-,-,+)
面积坐标在涉及到三角形子区域的工程学问题时特别有用,经常可以化简解析积分求值,高斯积分法表也常以面积坐标的形式给出。
考虑由顶点
,
和
定义的三角形T,任何在三角形内部的点
都能写成顶点的加权和:
![{\displaystyle {\textbf {p}}=\lambda _{1}{\textbf {v}}_{1}+\lambda _{2}{\textbf {v}}_{2}+\lambda _{3}{\textbf {v}}_{3},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/330fc2e6e1d4ddb7a8acf77ae44c853c9f5abeeb)
这里
、
和
是面积坐标。注意到
。从而,函数
在T上的积分为:
![{\displaystyle \int _{T}f({\textbf {p}})\ ds=2S\int _{0}^{1}\int _{0}^{1-\lambda _{2}}f(\lambda _{1}{\textbf {v}}_{1}+\lambda _{2}{\textbf {v}}_{2}+(1-\lambda _{1}-\lambda _{2}){\textbf {v}}_{3})\ d\lambda _{1}\ d\lambda _{2}\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a27b47bdf559366af8819f7605ec44d74009d9f6)
这里S是三角形T的面积。注意上式具有线性插值的形式。
重心坐标提供了一种非结构网格上函数插值的方法,假设函数值在所有网格的顶点上已知。如果
,则点
位于三角形内部或边界上。我们取
的插值为
![{\displaystyle f({\textbf {p}})=\lambda _{1}f({\textbf {v}}_{1})+\lambda _{2}f({\textbf {v}}_{2})+\lambda _{3}f({\textbf {v}}_{3}),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/db2d292aca5db4ceeb6fbf0b9850491bcebd34dd)
这个线性插值是自动正规的因为
。
重心坐标容易推广到三维空间。3维单形即四面体,具有四个三角形面和四个顶点。
完全类似于三角形,四面体
的顶点
的重心坐标为(1,0,0,0),
为(0,1,0,0),如是等等。
点
的笛卡尔坐标和为关于四面体
的重心坐标的关系:
![{\displaystyle \lambda _{1}={\text{Vol}}(PV_{2}V_{3}V_{4})/{\text{Vol}}(V_{1}V_{2}V_{3}V_{4}),\;\lambda _{2}=\cdots .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f266596e34929b0ac07c8f6b25d4a0e7372e3486)
这里
为
组成的四面体的体积,类似于三角形也可以用笛卡尔坐标的一个行列式表示出来。
3维重心坐标和2维一样,可以确定一点是否位于四面体内部,也能对四面体网格上函数插值。因为利用重心坐标可以极大地简化3维插值,四面体网格经常用于有限元分析。