perfume

  • 人体の3D回転をしようと思って、人体の表面座標のサンプルがどこかに転がっていないかと、かなり一生懸命探したのだが、ない!
  • 行き着いたのは、こちらで紹介されているこちらのサイトのPerfumeの3人の3D座標。ファンが3Dプリントする動きもあるらしい。
  • .obj拡張子のファイルを開くと、数字がたくさんある。
  • 3種類の座標(もしくは何かの値)がある。vn,v,vtという何か
  • vtは2つしか値がないから、3D座標ではないとして
  • vnかvか
  • vnは球面座標の集合になるもよう
  • vをRに読み込ませて…
perfumev <- as.matrix(read.table("perfume_v.txt"))
perfumev.2 <- rbind(perfumev,rep(max(perfumev),3))
perfumev.2 <- rbind(perfumev.2,rep(min(perfumev),3))
plot3d(perfumev.2,cex=0.001)

perfumev <- as.matrix(read.table("perfume_v.txt"))
perfumev.2 <- rbind(perfumev,rep(max(perfumev),3))
perfumev.2 <- rbind(perfumev.2,rep(min(perfumev),3))
par(mfcol=c(1,3))
plot(perfumev.2[,c(1,2)],cex=0.01)
plot(perfumev.2[,c(3,2)],cex=0.01)
plot(perfumev.2[,c(1,3)],cex=0.01)
par(mfcol=c(1,1))
\end{lstlisting}
\begin{breakbox}
<<fig=TRUE>>=
perfumev <- as.matrix(read.table("perfume_v.txt"))
perfumev.2 <- rbind(perfumev,rep(max(perfumev),3))
perfumev.2 <- rbind(perfumev.2,rep(min(perfumev),3))
par(mfcol=c(1,3))
plot(perfumev.2[,c(1,2)],cex=0.01)
plot(perfumev.2[,c(3,2)],cex=0.01)
plot(perfumev.2[,c(1,3)],cex=0.01)
par(mfcol=c(1,1))
theta1 <- pi/3
theta2 <- pi/4
M1 <- matrix(c(cos(theta1),0,-sin(theta1),0,1,0,sin(theta1),0,cos(theta1)),byrow=TRUE,3,3)
M2 <- matrix(c(1,0,0,0,cos(theta1),-sin(theta1),0,sin(theta1),cos(theta1)),byrow=TRUE,3,3)
M12 <- M2 %*% M1
perfumev.2.rot <- t(M12 %*% t(perfumev.2))
par(mfcol=c(1,3))
plot(perfumev.2.rot[,c(1,2)],cex=0.01)
plot(perfumev.2.rot[,c(3,2)],cex=0.01)
plot(perfumev.2.rot[,c(1,3)],cex=0.01)
par(mfcol=c(1,1))