Coordinate baricentriche
# Coordinate baricentriche

In matematica le coordinate baricentriche sono una forma di coordinate omogenee definite dai vertici di un simplesso introdotte nel 1827 da August Ferdinand Möbius. Possono essere definite in uno spazio euclideo, o in un più generale spazio vettoriale o affine. In uno spazio affine prendono anche il nome di coordinate affini.

## Definizione

### In uno spazio vettoriale

Siano $x_{0},\ldots ,x_{n}$ vertici di un simplesso in uno spazio vettoriale di dimensione $n$ (ad esempio i tre vertici di un triangolo in uno spazio a due dimensioni). Un punto $P$ del simplesso ha coordinate baricentriche

    $(\lambda _{0},\ldots ,\lambda _{n})$

se vale la relazione

    $P={\frac {1}{\lambda _{0}+\cdots +\lambda _{n}}}(\lambda _{0}\,x_{0}+\cdots +\lambda _{n}\,x_{n}).$

Affinché questa relazione abbia senso, è quindi necessario che la somma dei $\lambda _{i}$ sia diversa da zero. Le coordinate baricentriche non sono univoche: se $\lambda _{0},\ldots ,\lambda _{n}$ sono le coordinate baricentriche di un punto $P$, anche $b\lambda _{0},\ldots ,b\lambda _{n}$ lo saranno per ogni $b$ diverso da zero. Le coordinate diventano univoche se si impone la relazione

    $\lambda _{0}+\ldots +\lambda _{n}=1.$

Dotando il vertice $x_{i}$ di una massa positiva $\lambda _{i}$, il punto $P$ risulta effettivamente essere il baricentro dei vertici pesati, da cui il nome.

### In uno spazio affine

Siano $x_{0},\ldots ,x_{n}$ vertici di un simplesso in uno spazio affine di dimensione $n$. Siano $\lambda _{0},\ldots ,\lambda _{n}$ tali che

    $\lambda _{0}+\ldots +\lambda _{n}=1.$

Il punto $P$ di coordinate baricentriche (o affini)

    $(\lambda _{0},\ldots ,\lambda _{n})$

è il punto

    $P=O+\lambda _{0}{\overrightarrow {OP_{0}}}+\ldots +\lambda _{n}{\overrightarrow {OP_{n}}}$

dove $O$ è un qualsiasi punto del piano (il risultato non dipende da questa scelta).

## Proprietà

I vertici del simplesso hanno coordinate

    $(1,0,\ldots ,0),(0,1,0,\ldots ,0),\ldots ,(0,\ldots ,0,1).$

I punti aventi coordinate non negative $\lambda _{i}\geq 0$ sono precisamente i punti del simplesso, che è l'inviluppo convesso dei suoi vertici. I punti aventi coordinate strettamente positive $\lambda _{i}>0$ sono i punti interni del simplesso.

Le facce del simplesso sono ottenute ponendo alcune coordinate uguali a zero. Ad esempio, i tre lati del triangolo sono contenuti in tre rette, descritte in coordinate baricentriche dalle equazioni

    $r_{0}=\{x_{0}=0\},\quad r_{1}=\{x_{1}=0\},r_{2}=\{x_{2}=0\}.$

## Le coordinate baricentriche in 2 dimensioni

Il caso più semplice di applicazione delle coordinate baricentriche si ha in 2 dimensioni dove il simplesso è un triangolo. Se chiamiamo i vertici di questo triangolo $x_1,$ $x_2$ e $x_3$ allora ogni punto r può essere scritto in funzione delle coordinate baricentriche $λ_1,$ $λ_2$ e $λ_3$ come

    ${\textbf {r}}=\lambda _{1}{\textbf {x}}_{1}+\lambda _{2}{\textbf {x}}_{2}+\lambda _{3}{\textbf {x}}_{3}$.

Per eliminare l'indeterminazione sulle coordinate baricentriche possiamo introdurre la condizione di normalizzazione

    $\lambda _{1}+\lambda _{2}+\lambda _{3}=1$

ovvero

    $\lambda _{3}=1-\lambda _{1}-\lambda _{2}$.

A questo punto possiamo invertire il problema, ovvero ricavare il valore delle coordinate baricentriche sapendo la posizione del punto in coordinate cartesiane. Infatti possiamo sviluppare la posizione in coordinate cartesiane del punto ${\textbf {r}}=(x,y,z)$ in funzione delle coordinate dei vertici del triangolo

    ${\begin{matrix}x=\lambda _{1}x_{1}+\lambda _{2}x_{2}+\lambda _{3}x_{3}\\y=\lambda _{1}y_{1}+\lambda _{2}y_{2}+\lambda _{3}y_{3}\\z=\lambda _{1}z_{1}+\lambda _{2}z_{2}+\lambda _{3}z_{3}\end{matrix}}$.

Facendo la sostituzione

    $\lambda _{3}=1-\lambda _{1}-\lambda _{2}$

si ha quindi

    ${\begin{matrix}x=\lambda _{1}x_{1}+\lambda _{2}x_{2}+(1-\lambda _{1}-\lambda _{2})x_{3}\\y=\lambda _{1}y_{1}+\lambda _{2}y_{2}+(1-\lambda _{1}-\lambda _{2})y_{3}\\z=\lambda _{1}z_{1}+\lambda _{2}z_{2}+(1-\lambda _{1}-\lambda _{2})z_{3}\end{matrix}}$

e quindi

    ${\begin{matrix}\lambda _{1}(x_{1}-x_{3})+\lambda _{2}(x_{2}-x_{3})+x_{3}-x=0\\\lambda _{1}(y_{1}-y_{3})+\lambda _{2}(y_{2}-y_{3})+y_{3}-y=0\\\lambda _{1}(z_{1}-z_{3})+\lambda _{2}(z_{2}-z_{3})+z_{3}-z=0\end{matrix}}$.

Risolvendo questo sistema lineare si ottiene

    $\lambda _{1}={\frac {B(F+I)-C(E+H)}{A(E+H)-B(D+G)}}$

e

    $\lambda _{2}={\frac {A(F+I)-C(D+G)}{B(D+G)-A(E+H)}}$

dove

    ${\begin{matrix}A=x_{1}-x_{3}\\B=x_{2}-x_{3}\\C=x_{3}-x\\D=y_{1}-y_{3}\\E=y_{2}-y_{3}\\F=y_{3}-y\\G=z_{1}-z_{3}\\H=z_{2}-z_{3}\\I=z_{3}-z\\\end{matrix}}$

che completa l'inversione del problema.

## Le coordinate baricentriche nella grafica digitale

Le coordinate baricentriche trovano una larga applicazione nel campo della grafica digitale. Ad esempio un metodo utilizzato per sfumare i colori su di un poligono (shading) in modo da nascondere la loro forma "piatta" è quella del Gouraud shading dove l'intensità luminosa viene calcolata ai vertici di un triangolo e poi effettuando una interpolazione lineare tramite le coordinate baricentriche su tutta la superficie.

Un'altra applicazione è quella di generalizzare le coordinate baricentriche non solo ai simplessi ma anche a poligoni generici e di definire le coordinate di ogni punto di un modello 3D tramite le coordinate baricentriche riferite ai vertici del poligono. In questo caso il poligono forma una sorta di "gabbia" attorno al modello e, deformando il poligono, si ottengono deformazioni morbide del modello al suo interno.

