cartesianToBarycentric

Converte pontos cartesianos em coordenadas baricêntricas relativas a triângulos ou tetraedros dados.

Categoria: Mathematics > Computational Geometry

Sintaxe

B = cartesianToBarycentric(TR, T, X)

Retorna as coordenadas baricêntricas de cada linha de X em relação ao simplex listado em T.

Descrição

Coordenadas baricêntricas expressam um ponto como pesos nos vértices de um simplex. Para obtê-las, a função resolve um pequeno sistema linear montado com os vértices do simplex. Todas ficam em [0, 1] exatamente quando o ponto está dentro do simplex, o que serve como teste de pertinência e como base da interpolação linear sobre uma malha.

Os pontos de consulta não precisam estar dentro do simplex escolhido; nesse caso são extrapolados.

Argumentos de entrada

TR
Uma triangulation ou delaunayTriangulation (2-D, tetraédrica 3-D ou triângulos de superfície 3-D).
T
Vetor coluna de índices de simplexes, um por ponto de consulta.
X
Pontos de consulta, um por linha.

Argumentos de saída

B
Coordenadas baricêntricas, uma linha por ponto de consulta. As linhas somam 1; uma entrada negativa significa que o ponto está fora desse simplex.

Exemplos

Ponto fora do triângulo escolhido

x = [0 1 1 0 0.5]';
y = [0 0 1 1 0.5]';
DT = delaunayTriangulation(x, y);
B = cartesianToBarycentric(DT, 1, [0.1 0.2])
Saída
B = 1×3

    1.8000   -0.1000   -0.7000

Tetraedro

tet = delaunayTriangulation([0 0 0; 1 0 0; 0 1 0; 0 0 1]);
B = cartesianToBarycentric(tet, 1, [0.1 0.1 0.1])
Saída
B = 1×4

    0.7000    0.1000    0.1000    0.1000

Veja também

barycentricToCartesian pointLocation delaunayTriangulation