首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python上的.OFF文件

Python上的.OFF文件
EN

Stack Overflow用户
提问于 2015-06-30 13:06:44
回答 1查看 5.4K关注 0票数 2

我一直在练习Python和PyOpenGL,但是我似乎不能打开.OFF文件(用Python打开Object File Format

如果你想知道,.OFF文件是包含3D对象位置的文件。

代码语言:javascript
复制
 OFF
 8 6 0
-0.500000 -0.500000 0.500000
 0.500000 -0.500000 0.500000
-0.500000 0.500000 0.500000
 0.500000 0.500000 0.500000
-0.500000 0.500000 -0.500000
 0.500000 0.500000 -0.500000
-0.500000 -0.500000 -0.500000
 0.500000 -0.500000 -0.500000
 4 0 1 3 2
 4 2 3 5 4
 4 4 5 7 6
 4 6 7 1 0
 4 1 7 5 3
 4 6 0 2 4

我想读取这个文件并使其出现在python上。

示例应该如下所示:http://people.sc.fsu.edu/~jburkardt/data/off/box.png

到目前为止,我所要做的是手动编写.OFF文件中的每个坐标。但程序需要能够读取您提供给它的每个.OFF文件。

我只能做我给出的例子,因为我为垂直和表面创建了元组的元组:

代码语言:javascript
复制
verticiesCube = (
   (-0.5,-0.5,0.5),
   (0.5,-0.5,0.5),
   (-0.5,0.5,0.5),
   ...
   )

代码语言:javascript
复制
 surfacesCube = (
   (0,1,2,3),
   (2,3,5,4),
   (4,5,7,6),
   ...
   )

然后执行以下操作:

代码语言:javascript
复制
 def Read(verticies,surfaces):
   glBegin(QL_QUADS)
   for surface in surfaces:
      for vertex in surface:
        glVertex3fv(verticies[vertex])
   glEnd()

然后我运行Read(verticiesCube,surfacesCube),出现一个多维数据集。我的观点是,您需要能够对每个.OFF文件执行此操作,有时并不是所有的文件都是相同的(它们也有指定的颜色,或者有时在数字之前写了一些东西,所以我不知道如何跳过它们。示例:)

代码语言:javascript
复制
  OFF
  #
  #  cone.off
  #
  22   40     120
  0.000000   1.000000   0.000000
  0.000000   0.000000   0.000000
  0.500000   0.000000   0.000000

(#和cone.off是我提到的东西)

如何将.OFF文件的坐标和曲面保存到类似的元组中,以便应用()算法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-30 17:02:44

不知道第二行的最后一个字段是什么意思。其余的可以很容易地推断出来:

代码语言:javascript
复制
def read_off(file):
    if 'OFF' != file.readline().strip():
        raise('Not a valid OFF header')
    n_verts, n_faces, n_dontknow = tuple([int(s) for s in file.readline().strip().split(' ')])
    verts = [[float(s) for s in file.readline().strip().split(' ')] for i_vert in range(n_verts)]
    faces = [[int(s) for s in file.readline().strip().split(' ')][1:] for i_face in range(n_faces)]
    return verts, faces
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31129968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档