3Dプリンタでも利用されるSTLファイルです。
その3Dプリンタの普及もあってか、フリーの3Dモデルファイルを提供するサイトも増えているようです。
import numpy as np
from stl import mesh
import plotly.figure_factory as ff
def stl2create_trisurf(stl_mesh):
p, q, r = stl_mesh.vectors.shape
vertices, ixr = np.unique(stl_mesh.vectors.reshape(p*q, r), return_inverse=True, axis=0)
simplices = ixr.reshape([-1, 3])
return vertices, simplices
my_mesh = mesh.Mesh.from_file('DOLPHIN.stl')
vertices, simplices = stl2create_trisurf(my_mesh)
x, y, z = vertices.T
title = "DOLPHIN"
fig = ff.create_trisurf(x=x, y=y, z=z,
simplices=simplices,
width=500,
height=500,
title="DOLPHIN",
aspectratio=dict(x=1, y=1, z=1)
)
#fig.show()
fig.write_html("DOLPHIN.html")
STLファイルからcreate_trisurfの為のデータを取得する部分は、こちらのサイトの関数を少し変更しました。