为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Plotly 从点云生成表面网格

使用 Plotly 从点云生成表面网格

心有法竹 2023-04-11 15:22:45
我正在尝试从点云生成表面我环顾四周,解决方案似乎是从云点生成三角形,然后生成最终网格。但是,我尝试按照此处提出的程序进行操作,但失败了并获得了以下信息:可悲的是,我的数学背景不太好,当我开始从其他 awnsers 和 Plotly 文档中的镶嵌中阅读 Jonathan Shewchuk 时,我并没有真正理解。我使用的代码是这样的:#Assume X_Vir, Y_Vir and Z_Vir are list of points used to create the scatter plotpoints2D = np.vstack([X_Vir, Y_Vir]).Ttri = Delaunay(points2D)    simplices = tri.simplicesfig = ff.create_trisurf(x=X_Vir, y=Y_Vir, z=Z_Vir, simplices=simplices)fig.show()有人有想法吗?
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

Mesh3d我通过使用plotly 函数提供点坐标以及关联的顶点来解决我的问题:


fig = pot.Figure(data=[pot.Mesh3d(x=points_coord90[:,1], y=points_coord90[:,0], z=points_coord90[:,2], 

                        i=points_vert[:,0], j=points_vert[:,1], k=points_vert[:,2], 

                        intensity=bi_volt, cmin=0, cmax=2, reversescale=False, colorscale='RdYlBu', opacity=1)])


fig.show()

//img2.sycdn.imooc.com/64350b060001015f06580551.jpg

如果你没有顶点,另一种可能性是使用plotly 的alphahull选项(而不是 Delaunay),但它没有满足我的需求:

fig = pot.Figure(data=[pot.Mesh3d(x=points_coord90[:,1], y=points_coord90[:,0], z=points_coord90[:,2], alphahull=0.5, opacity=0.5)])



查看完整回答
反对 回复 2023-04-11
  • 1 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信