Permutohedron 4度

  • こちらでPermutohedronのことを書いている
  • N=3の場合は、6つの順列であって、それを3次元空間に均等配置すると、正八面体であると書いた
  • さて、正八面体の12本の辺のうち、どれに線を引くのがよいのだろうか?
  • (1,2,3)の3数のうち、2数を取り出して、入れ替えた並べ方は(1,3,2),(2,1,3),(3,2,1)の3通りだから、この3つと隣り合わせたい(隣り合わせには辺を引く)
  • 引いてみよう

  • 頂点数6
  • 辺数8
  • サイクルが四角形を作っていて、それは4個
  • 球の大円上の正方形があって、その大円を赤道としたときの北極南極に残りの2頂点が取ってあると見たときに、赤道上の正方形に対応する辺を引き、南北極を結ぶ線を引き、南極から赤道上の2点(経度上180度離れている)に辺を引き、北極からは、南極から辺の引かれていない赤道上の2点に辺を引いてある
Vs<-matrix(
c(
1,0,0,
0,1,0,
0,-1,0,
0,0,1,
-1,0,0,
0,0,-1
),
6,3,
byrow=TRUE
)

library(gtools)
perms<-permutations(3,3)

Ne<-101
t<-seq(from=0,to=1,length=Ne)
Es<-NULL
for(i in 1:(length(Vs[,1])-1)){
	for(j in (i+1):length(Vs[,1])){
		if(prod(perms[i,]-perms[j,])==0){
			tmp<-matrix(0,length(t),3)
			for(k in 1:length(t)){
				tmp[k,]<-Vs[i,]*t[k]+Vs[j,]*(1-t[k])
			}
			Es<-rbind(Es,tmp)
		}
		
	}
}

NptE<-length(Es[,1])

Npt<-10000
sp<-matrix(rnorm(Npt*3),Npt,3)
sp<-sp/sqrt(apply(sp^2,1,sum))

XYZ<-rbind(sp,Es)
col<-c(rep(gray(8/10),Npt),rep(2,NptE))

library(rgl)
plot3d(XYZ,col=col)