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
triangulationoudelaunayTriangulation(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