分享

经验 | 新一轮雨水路径分析方法 ——三种算法汇总 已入深坑不解释

 buzuo好人 2017-04-10

 

感谢 兰犀艺数 授权本文于建筑小学堂转载,转载请联系原作者



文章正文


话说,兰亭君前两天在整理资料的时候,

发现当年大月月在群里发过的一张图,

是关于编程计算雨水路径的...

先po图上来给大家瞧瞧。



然后还发了一张它的代码图。



当时稚嫩的兰亭君含着崇拜的眼光,

默默地右键另存了下来,并保留至今...

如今大不同啦!!~

兰亭君...

依然不会代码...



不过没关系,

作为GH分析动画爱好者,

怎么能放弃这个机会锻炼一下自己呢!

所以兰亭君就花了一个周末吭哧吭哧

用GH把这个分析动画模拟了出来,

哇哈哈哈哈~

想知道怎么搞的嘛,

那就来仔细看看操作原理吧~


首先可以先看看之前兰亭君讲过的几种

雨水路径的分析方法:

山地曲面/网格 汇水分析 丨 数据可视化专题〇五



山地(等高线)汇水分析 丨 数据可视化专题〇六



◆ mesh线框版雨水路径分析解读 ◆



这次与前几次不同的地方在于,

雨水点的行走路径都是在mesh的线框之上,

不是随意地在mesh表面流淌了。

至于优缺点嘛,自然也容易总结出来。


不过这次的做法相对前面几次都比较复杂,

也许...算是中高阶的一个案例吧。

兰亭君在这里只讲述思路和电池连法,

不再细讲每个电池的用法啦,

有需要了解电池用法的出门左拐,

请参阅前面两期汇水分析案例~



 思 路 解 析



Step. 1    雨水落点模拟为在每个三角网格的中心点上



Step. 2    雨水路径呢,是这样的步骤:



第一步,雨水点顺着mesh重力切线方向,

到达mesh边缘上的一点。

第二步,从这一点开始沿着mesh线框运动,

到达与其相邻的高程最低的那个顶点处。

如果还是不太清楚的,

来看看红框内的放大解析。



Step. 3    雨水最终的聚集点



当一次一次迭代去找下一个邻近点的时候,

最终都会遇到查无所查的情况,

也就是自己就是附近点中最低的啦,

这个时候就可以停住不再运动了。

而这样的点就是我们找到的汇水点。


Step. 4    根据汇水点汇水量赋予颜色及大小


这一点不用多说,可以表达出清晰的可视化数据。


进入正文,由于不是编程制作,

GH没有那么动态与智能,

那我们可以考虑分两步制作动画。


Step.1 循环迭代寻找汇水路径

Step.2 动画制作雨水径流


Step.1 循环迭代寻找汇水路径


首先,寻找到每个单元mesh的中心点,

以及其重力切线方向上的mesh线框交点。


第二步需要到的位置呢,

就是每个mesh三角形的最低的那个顶点。

只需要把每个mesh顶点找出来,

对比一下其z值之后就可以得到。

第二步的移动位置就有咯~


接下来的步骤就需要用到插件咧。

就是知名的HoopSnake和Kangaroo。


      


这也就是没有代码辅助的尴尬吧,

毕竟很多时候需要用到别人现成的插件,

才能解决我们的目标问题。


其雨水点的寻路逻辑为:

找到与其相邻的几个顶点,

比较这几个顶点的z值大小并找到最低的那一个点,

这个点就是雨水点的下一个位置。

但寻找mesh某个顶点的相邻点

在GH默认功能中并没有,

这时候兰亭君就想到传说中的Kagaroo

有一个VertexNeighbours(VN)的运算器,如下:

需要注意的是V端需要输入的不是顶点point,

而是每个顶点所对应的mesh上的序号值,

所以需要用到Member Index运算器。



可以看出,每次寻找对应序号的时候,

会找出一堆序号值,

这是因为我们输入的mesh是一个

没有被焊接过顶点的mesh,

否者输入VertexNeighbours运算器时会报错。

至于什么叫做焊接顶点的mesh...

好吧,我只能给一个传送门,

大鹿在专筑讲坛的公开课已然说明了一切!!

 ◆◆◆  http://v./course/213  ◆◆◆


简单来说就是每个顶点不仅是一个顶点,

而是周围几个三角形顶点重合而成的点(左),

并不是这几个三角形共用这个顶点(右)...


左边的mesh就是没有被焊接过定点的mesh,

每一个定点其实属于周围6个三角面。

那么使用Member Index运算器的时候,

自然会找到03,06,09,12,15,18这6个序号。

三我们只需要其中一个序号就ok了,

所以用List Item筛选出其中一个序号输入VN运算器。

最后就可以得到每个顶点相邻的那些顶点啦~


接下来就是比较一下找到的这些顶点

是不是比原顶点还要低,

如果低呢,就找出最低的那一个,

否者就找原顶点自己好咯。



接下来第二个坑...

循环吧!我的相邻点!!



最终把循环迭代完的点的经过路径连起来,

就得到这次的汇水路径啦~


最后来点动画,其实就是在曲线上找点。

用的就是Evaluate Curve运算器和Number Slider

奏是这么简单便捷!



至于怎么使用Number Slider制作动画,

就放在下一期帖子中给大家讲讲吧~


最终成品:



最后不要忘了第一步、第二步找到的两个雨水点位置

将他们一起制作成动画内容,

汇水部分的分析动画分析制作就大功告成了~

最后的雨水量数据显示方式就见仁见智了,

兰亭君会在案例文件中加上自己的做法,

不过是忙中抽闲做出来的粗略稿,

有强迫症的小伙伴就不要看了...

各位加油给出自己的思考哦~





感谢 兰犀艺数 授权分享

微信ID: L-RhinoDesign

版权声明

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多