Преобразование в R декартовых координат в барицентрические
У меня есть три опорных вектора
a ( 0, 0, 1 )
b ( 0, 1, 0 )
c ( 1, 0, 0 )
и будет иметь такие измерения, как
x( 0, 0.5, 0.3 )
который я хочу построить на 2D-фигуре в виде треугольника, ребра которого будут соответствовать a, b и c.
В Matlab есть простая функция для этого
http://fr.mathworks.com/help/matlab/ref/triangulation.cartesiantobarycentric.html?s_tid=gn_loc_drop
кто-нибудь знает эквивалент в R или я должен реализовать математику?
1 ответ
Решение
Конечно, вы можете перемещаться между декартовой и барицентрической системами.
Бари в корзину:
library(geometry)
## Define simplex in 2D (i.e. a triangle)
X <- rbind(
c( 0, 0, 1 ),
c( 0, 1, 0 ),
c( 1, 0, 0 ))
## Cartesian cooridinates of points
beta <- rbind(c( 0, 0.5, 0.3 ),
c(0.1, 0.8, 0.1),
c(0.1, 0.8, 0.1))
## Plot triangle and points
trimesh(rbind(1:3), X)
text(X[,1], X[,2], 1:3) # Label vertices
P <- bary2cart(X, beta)
Корзина в Бари:
## Define simplex in 2D (i.e. a triangle)
X <- rbind(c(0, 0),
c(0, 1),
c(1, 0))
## Cartesian cooridinates of points
P <- rbind(c(0.5, 0.5),
c(0.1, 0.8))
## Plot triangle and points
trimesh(rbind(1:3), X)
text(X[,1], X[,2], 1:3) # Label vertices
points(P)
cart2bary(X, P)