在R中以3D绘制简单图

在R中以3D绘制简单图,r,plot3d,R,Plot3d,我有一个点列表和一个简单列表。我想在给定顶点的情况下,在3D中绘制简单图。本质上,我在寻找3D中的segment()的等价物 范例 Pts<-matrix(c(0,0,0,1,0,0,0,1,0,0,0,1),ncol =3,byrow=TRUE) Simplex<-c(1,2,3,4) 带有“rgl”软件包的Pts 库(rgl) 带有“rgl”包的顶点: 库(rgl) 顶点没有那么漂亮或灵活,但这里有一个基本的R版本,它使用persp和segments来娱乐: ## empty

我有一个点列表和一个简单列表。我想在给定顶点的情况下,在3D中绘制简单图。本质上,我在寻找3D中的segment()的等价物

范例

Pts<-matrix(c(0,0,0,1,0,0,0,1,0,0,0,1),ncol =3,byrow=TRUE)
Simplex<-c(1,2,3,4)
带有“rgl”软件包的Pts

库(rgl)
带有“rgl”包的顶点:

库(rgl)

顶点没有那么漂亮或灵活,但这里有一个基本的R版本,它使用
persp
segments
来娱乐:

## empty perspective plot
tm <- persp(matrix(rep(0,4), nrow=2),
            xlim=c(-1,1), ylim=c(-1,1), zlim=c(-1,1),
            col="#00000000", border=NA, theta=30, phi=50, xlab="x")

## project points into 3d space
tpts <- data.frame(trans3d(pmat=tm, x=Pts[,1], y=Pts[,2], z=Pts[,3]))

## draw each segment
sgs <- combn(seq_len(nrow(tpts)), 2,
             FUN=function(r) unlist(tpts[r,]), simplify=FALSE)
lapply(sgs, function(x) segments(x[1], x[3], x[2], x[4], col="red"))
##空透视图

tm没有那么漂亮或灵活,但这里有一个基本的R版本,它使用
persp
segments
来娱乐:

## empty perspective plot
tm <- persp(matrix(rep(0,4), nrow=2),
            xlim=c(-1,1), ylim=c(-1,1), zlim=c(-1,1),
            col="#00000000", border=NA, theta=30, phi=50, xlab="x")

## project points into 3d space
tpts <- data.frame(trans3d(pmat=tm, x=Pts[,1], y=Pts[,2], z=Pts[,3]))

## draw each segment
sgs <- combn(seq_len(nrow(tpts)), 2,
             FUN=function(r) unlist(tpts[r,]), simplify=FALSE)
lapply(sgs, function(x) segments(x[1], x[3], x[2], x[4], col="red"))
##空透视图

tm什么是
nock=3
?你的意思是
ncol=3
?如果可能的话,你能提供一个能代表你想要的东西的例子吗?我不太熟悉单纯形的术语。@Late Mail 3D中的单纯形只不过是一个四面体。@StéphaneLaurent-很酷,谢谢,我以前没听说过这个术语。对了,回答得不错。@最近的邮件是的,那是IPhone引入的打字错误。谢谢你指出这一点。小维单纯形的名称是:0-单纯形是点,1-单纯形是线段,2-单纯形是三角形,3-单纯形是四面体,4-单纯形是5-单元。什么是
nock=3
?你的意思是
ncol=3
?如果可能的话,你能提供一个能代表你想要的东西的例子吗?我不太熟悉单纯形的术语。@Late Mail 3D中的单纯形只不过是一个四面体。@StéphaneLaurent-很酷,谢谢,我以前没听说过这个术语。对了,回答得不错。@最近的邮件是的,那是IPhone引入的打字错误。谢谢你指出这一点。小维单纯形的名称是:0-单纯形是点,1-单纯形是线段,2-单纯形是三角形,3-单纯形是四面体,4-单纯形是5-单元。前面的答案对我来说更相关,但这也非常有用。非常感谢。前面的答案对我来说更相关,但这也非常有用。非常感谢。
## empty perspective plot
tm <- persp(matrix(rep(0,4), nrow=2),
            xlim=c(-1,1), ylim=c(-1,1), zlim=c(-1,1),
            col="#00000000", border=NA, theta=30, phi=50, xlab="x")

## project points into 3d space
tpts <- data.frame(trans3d(pmat=tm, x=Pts[,1], y=Pts[,2], z=Pts[,3]))

## draw each segment
sgs <- combn(seq_len(nrow(tpts)), 2,
             FUN=function(r) unlist(tpts[r,]), simplify=FALSE)
lapply(sgs, function(x) segments(x[1], x[3], x[2], x[4], col="red"))