将R笛卡儿坐标转换为重心坐标

时间:2016-09-18 00:50:03

标签: r math coordinates cartesian-coordinates

我有三个参考载体

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 个答案:

答案 0 :(得分:4)

当然,你可以在笛卡尔和重心之间来回走动。

Bary to Cart:

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)