实验室-NO.2 python 读取3D obj文件 + 特征点显示 + 凹凸点分类

目录

(一)python 读取3D obj文件

(二)特征点显示

(三)凹凸点分类


 

(一)python 读取3D obj文件

转载自https://blog.csdn.net/hongmaodaxia/article/details/78956487

下载github里的整个proj,直接运行,将数据路径改为自己的即可!可鼠标点击旋转!

(二)特征点显示

def draw_feature(data):
    glPointSize(20)
    glBegin(GL_POINTS)
    color = [255, 255, 255]
    glColor3f(*color)
    po = [data[0], data[1], data[2]]
    glVertex3f(*po)  # 3个参数xyz  f:32位浮点数
    # time.sleep(5)
    glEnd()

 

(三)凹凸点分类

# 在github下载的proj里面修改

elif e.type == KEYDOWN:
                if e.key == pygame.K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                # 按下q:显示特征点
                elif e.key == K_q:
                    global look
                    draw_feature(my_data[look])
                    pygame.display.flip()

                # 按下w:特征点数目+1
                elif e.key == K_w:
                    # global look
                    look = look + 1
                    if look >= l:
                        # jian  与  nojian写入文件
                        save_file(jianpath + path2, jian)
                        save_file(nojianpath + path2, nojian)
                        sys.exit()

                # 按下e:归为凸点
                elif e.key == K_e:
                    jian0 = list(my_data[look])
                    jian.append(jian0)
                    # print(jian)

                # 按下r:归为凹点
                elif e.key == K_r:
                    nojian0 = list(my_data[look])
                    nojian.append(nojian0)
# 在github下载的proj里面添加一个函数

def save_file(file_path, li):
    output = open(file_path, 'w+')
    for i in range(len(li)):
        for j in range(len(li[i])):
            output.write(str(li[i][j]))
            output.write(' ')
        output.write('\n')
    output.close()
发布了29 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sunshine04/article/details/104039025