Geometry 将波阵面.obj转换为.off

Geometry 将波阵面.obj转换为.off,geometry,file-format,file-conversion,wavefront,Geometry,File Format,File Conversion,Wavefront,如何将文件转换为文件?您可以使用开源GUI软件 文件导入网格(Ctrl-I) 文件将网格导出为并选择“对象文件格式(.off)” 您可以使用CLI、封闭源代码、仅二进制、 然而,结果似乎与我使用Meshlab得到的答案有点不同,因为我无法在CGAL中加载生成的.off文件(错误看起来像)。这应该适用于三角形网格 def conv_obj(file): x = open(file) k = 0 while "\n" in x.readline(

如何将文件转换为文件?

您可以使用开源GUI软件

  • 文件
    导入网格
    (Ctrl-I)
  • 文件
    将网格导出为
    并选择“对象文件格式(.off)”

您可以使用CLI、封闭源代码、仅二进制、


然而,结果似乎与我使用Meshlab得到的答案有点不同,因为我无法在CGAL中加载生成的.off文件(错误看起来像)。

这应该适用于三角形网格

def conv_obj(file):
    x = open(file)    
    k = 0
    while "\n" in x.readline():
        k += 1
    x = open(file)
    out = str()
    v = 0
    f = 0
    for i in range(k) :
        y = x.readline().split()
        if len(y) > 0 and y[0] == "v" :
            v += 1
            out += str(y[1]) + " " + str(y[2]) + " " + str(y[3]) + "\n"
        if len(y) > 0 and y[0] == "f" :
            f += 1
            out += "3 " + str(int(y[1])-1) + " " + str(int(y[2])-1) + " " + str(int(y[3])-1) + "\n"
    out1 = "OFF\n" + str(v) + " " + str(f) + " " + "0" + "\n" + out
    w = open(file.strip("obj") + "off", "w")
    w.write(out1)
    w.close()
    x.close()
    return "done"

如果您更喜欢命令行,则meshlab与命令行版本(meshlab服务器)捆绑在一起,该版本可以在CLI上执行相同的操作:
meshlab服务器-i input.obj-o output.off
(最终还可以通过指定脚本文件来执行一些筛选…)
def conv_obj(file):
    x = open(file)    
    k = 0
    while "\n" in x.readline():
        k += 1
    x = open(file)
    out = str()
    v = 0
    f = 0
    for i in range(k) :
        y = x.readline().split()
        if len(y) > 0 and y[0] == "v" :
            v += 1
            out += str(y[1]) + " " + str(y[2]) + " " + str(y[3]) + "\n"
        if len(y) > 0 and y[0] == "f" :
            f += 1
            out += "3 " + str(int(y[1])-1) + " " + str(int(y[2])-1) + " " + str(int(y[3])-1) + "\n"
    out1 = "OFF\n" + str(v) + " " + str(f) + " " + "0" + "\n" + out
    w = open(file.strip("obj") + "off", "w")
    w.write(out1)
    w.close()
    x.close()
    return "done"