2016-09-18 8 views
1

у меня есть три опорных векторовПреобразование в R декартовых координат барицентрических те

a (0, 0, 1) 
b (0, 1, 0) 
c (1, 0, 0) 

и будут иметь измерения, такие как

x(0, 0.5, 0.3) 

, который я хочу построить в 2D рисунке в виде треугольника, который ребрам соответствовали бы a, b и c.

В Matlab есть функция straighforward сделать что

http://fr.mathworks.com/help/matlab/ref/triangulation.cartesiantobarycentric.html?s_tid=gn_loc_drop 

Кто-нибудь знает эквивалент в R или я должен реализовать математику?

ответ

4

Уверенный, вы можете идти туда и обратно между декартово и барицентрическими.

Bary в корзину:

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) 

enter image description here

Корзина для Бари:

## 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)