在我深入充满流沙的兔子洞之前,这里是OBJ
文件(本例中为737飞机)中的文本子集
v -1.684813 -4.962262 2.184269
v -1.684813 -4.672744 2.090231
v -1.684813 -4.469102 1.864027
v -1.684813 -4.405789 1.566230
v -1.684813 -4.499885 1.276771
v -1.684813 -4.726089 1.073071
g engines
f 13 2 1
f 13 14 2
f 14 3 2
f 14 15 3
f 15 4 3
f 15 16 4
f 16 5 4
f 16 17 5
f 17 6 5
g main_body
f 1362 1380 1378
f 1362 1364 1380
f 1360 1362 1378
f 1320 1364 1362
其他几个组件也是如此
编辑-现在(愚蠢的我)我在维基百科和其他地方找到了OBJ文件定义,至少我知道v x y z
是顶点坐标,f a b c
标识了构建该部分的顶点。因此,我想我的问题可以归结为:有人写过与rgl
或其他3D库兼容的OBJ
专用翻译器吗?
mdsumner是正确的。对于那些可能关心的人来说,以下是基本步骤。
1) 将每个元素(例如"引擎")分解为一个单独的数组。2) 通过以下方式构建与coords.3d
兼容的x、y、z顶点矩阵(请参阅rgl
文档)读取每个"引擎"行中引用的顶点编号,并从顶点坐标的"v"集中检索坐标集。3) 绘制。
对于具有896行(即组成项目的896个三角形)的元素,
trieng<-matrix(nrow=896*3,ncol=3)
for (j in 1:896) {
trieng[(1+3*(j-1)):(3+3*(j-1)),1:3] <- v737[engine737[j,1:3],1:3]
}
我已经从数据矩阵中删除了第一列(包含"v","f")。