是否可以使用现有 R 包映射"OBJ"网格文件?



在我深入充满流沙的兔子洞之前,这里是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")。

相关内容

最新更新