SurveyLAB:D三角网3D编辑器

工程测量之前,先来看看攻略
关注我们,了解更多工程测量姿势
这
周末,决定编写一个D三角网编辑器。当决定把Anew的三角网功能上线到SurveyLAB的时候,就萌发了这个想法。在实际工作中,我们测量人员已经有较长测量地形散点生成三角网来计算土石方数量的历史,这的确很方便快捷。问题在于很多人在生成三角网后不加思索使用模型去算量,这本身存在较大的问题。
D三角网的生成是根据Delaunay三角形法则生成的,Delaunay三角形法则是一个数学法则:使所有构成三角网的三角形最小角最大化。这的确很大程度较好地模拟了地形。但注意,模拟不代表实际,数学法则和物理现实是存在差异的,大多数时候不能忽略。
带来的问题就是:散点生成的三角网必须可以编辑修改,而且能即时看到修改的效果。如果修改后实际三维模型与物理地形相吻合,这个模型就可以用于算量,否则不能。需求就是:有一个三维模型环境,可以编辑三角网,并能够保存修改后的模型文件供算量使用。
在AI的协助下,使用了JavaScript来完成了这个编辑器设计。

这个编辑器通过SurveyLAB的TriEditor()命令打开。打开后会显示一个渲染示例。可以用ctrl+鼠标左键拖动相机角度,也可以滚轮缩放来观察整个模型。工具栏第一个按钮切换浏览和编辑模式,也可以按空格切换。R键快速切换到俯视图,便于编辑三角网。F键切换到正视图。
文件的三个按钮功能:
📋:打开散点的坐标文件。支持序号,点名,x,y,h/点名,x,y,h/x,y,h三种文件格式。编辑器会自动生成初始的三角网。
📂:打开上一次存盘的模型文件,可以继续编辑。
💾:将当前模型保存为文件。
01
D三角网编辑
1、点的删除和三角形删除
在编辑模式下(非浏览模式和约束模式)选择点或三角形,可以用del键删除。任意点都可以删除,删除后影响区域会重构三角网。三角形不能任意删除,只能从边界开始删除,因为删除非边界三角形会在网内形成空洞,导致三角网不连续。
2、约束🔗
约束是指改变点与点之间的连接方式,从而改变地形。当你发现地形某个地方跟实际不吻合,在不补充新点的情况下,采用约束方式来改变。
边约束就是选一个起点和一个终点,选了终点后,编辑器会自动将起终点作为一条边来重构影响范围内的三角网。
多次观察模型和实际地形比较,多次约束和删减三角形,才能做出一个正确的模型。编辑器仅支持网内约束,暂不支持跨边界或边界外约束。
约束前:

约束后:如左下角与右上角点进行约束。

3、自动凹包🫧
根据Delaunay三角形法则生成的初始边界理论上一定是一个凸多边形,但凸多边形一般都不是真实的边界,接近真实边界的是凹多边形,点击🫧会自动求凹多边形,多次点击会多次收缩边界。过分收缩也会与实际边界失真,需要适当,或者少收缩,然后人工删除边界三角形。
初次生成:

第一次求凹包后:

颜色根据等高线高低渲染,从低到高:绿,黄,橙,红
02
点缩放
编辑器用一个白色小圆球来表示点,点大小影响观察可以缩小放大点。
🔍 -缩小点
🔎+放大点

点太小,放大一些:

03
显示与隐藏
👁 点的显示与隐藏切换
显示点:

隐藏点:

🎨 渲染模式与三角网模式之间切换
渲染:

网格模式:
有了正确的模型,就可以计划在SurveyLAB中使用:
PutHats_Trinet(模型文件,起点里程,终点里程,断面间距)
(PutHats_trinet:在三角网模式下批量戴帽子)
从而生成土石方计算表和断面图,实现土石方测量工作的快捷和正确性。
在此感谢Deepseek的任劳任怨。
识别图中二维码,关注“工程测量之家”公众号。

夜雨聆风