共计 1633 个字符,预计需要花费 5 分钟才能阅读完成。
背景
最近有不同行业的客户征询我司能不能提供一种解决方案,能够疾速实现三维修建成果,能疾速响应市场须要,满足招标、交付、技术服务、厂房建设等需要。客户次要行业畛域为新能源光伏逆变器铺设、房地产修建、工厂厂房等三维修建畛域。
首先咱们对他们的需要进行了剖析,发现他们的独特需要是三维修建,他们都想应用简略疾速的编辑形式实现三维修建,而后是业务需要。最终咱们决定依据他们的需要,做一个简略的设计工具来实现三维修建,而后再顺次增加他们额定的业务需要。下边就简略的介绍下咱们设计工具技术的尝试,如果你有更好的意见和思路能够一起沟通交流,共勉。
工具技术与实际
该设计工具应用的技术是我司自主研发的 TWaver 2D 和 TWaver 3D 技术,该技术能够查看我司官网:https://www.servasoft.com/。
地图资源集成
该设计工具实现了 2D 和 3D 地图的加载,反对 Google Map、Ding Map、Streetlamp、Capable 和高德地图的加载。这个性能次要是应用 TWaver 2D、3D 技术,该性能次要是反对新能源光伏板需要的地图加载和截取性能。
三维修建编辑
三维修建的实现是通过在立体上打点,而后点击 3D 转换性能,生成三维修建,可旋转预览三维修建场景。
0.1 技术实现
技术是通过计算所有顶点和连线失去屋顶轮廓图。点击轮廓的边缘局部,程序会寻找离该点最近的边(如果点与边的间隔 >15px 将不会失效),而后找到点到这条边的垂足,作为屋脊的起始点。用同样的形式创立屋脊的完结点(绿色线段为屋脊线)。
三维成果是通过将顶点在二维坐标系中的 y 坐标,作为三维坐标系中的 z 坐标,再依据屋顶高度和围墙高度,别离给顶点加上 y 坐标,就失去了所有顶点的三维坐标。而后再将六个顶点,依照 a -b-e-f,f-e-c- d 两个面生成屋顶,而后依据 a,b,c,d 生成围墙,就拿到了屋宇模型的面,把这些多边形的面用 Ear cut 算法切割成三角面,而后把面的信息和顶点的信息,传入 Heatwave 的 3d 引擎,就生成了如下图模型。
三维模型生成了,然而看着修建灰白色,和修建有差异不美观。那咱们就给修建加个好看的形状,依据各个面顶点的坐标信息计算出顶点的 UV,而后将所有面的顶点的 UV 坐标传入引擎,实现贴图成果,三维修建反对多种贴图款式。
屋脊线生成
三维修建做好后,就打算给修建加个屋脊线,以实现屋顶的拖动,实现模型款式高度的调整。
0.2 技术实现
首先依照顶点 e - f 的门路,生成一条管道作为屋脊,当拖拽扭转这条管道的地位时,同步扭转顶点 5,6 的三维坐标,这样就失去了一个能够拉伸编辑的屋宇模型。
主动生成多边屋脊线
通过打点创立屋宇轮廓,而后点击主动计算屋脊线性能按钮,主动创立多边平面屋脊线。
0.3 技术实现
首先计算角 a,b,c,d 的角平分线,并且依据 a,d 角平分线的交点 f,和 b,c 角平分线的交点 e 创立连线 f,e。而后将面 a,f,d;面 a,b,e,f;面 e,b,c; 面 f,e,c,d 作为屋顶的顶面,生成屋顶的三维模型。操作步骤如下:
光伏板铺设
三维建的疾速实现满足了客户的根本修建需要,其它额定的业务需要,咱们也尝试着进行了性能实现。如光伏板铺设需要。
光伏板地位挪动
光伏板的铺设地位,反对批量铺设和铺设地位调整,反对整体布局优化。
技术实现
首先将镜头固定在坐标 (0,1500,0),而后在面 f -e-c- d 上框选一个矩形区域,依据矩形区域面积和面 f -e-c- d 的投影面积找到两个面相交区域,在这个区域内主动铺排光伏板,通过像素检测计算光伏板的四个顶点是否都在屋面的无效范畴内,如果不在,则删除该光伏板。对面 a -b-e- f 执行雷同操作,最终失去的成果:
目前该设计工具还是一个雏形,是从技术实现的层面进行的尝试,后边会进行成果设计等其它性能的增加,如各种光照成果,各种场景组件等,欢送各位沟通交流不同技术和想法。
如果对可视化感兴趣,能够和我交换,微信 541002349. 另外关注公众号“ITMan 彪叔”能够及时收到更多有价值的文章。