NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 16087|回复: 16

[话题讨论] 如何通过凹形点阵构造外形折线

[复制链接]
发表于 2018-4-13 20:38:36 | 显示全部楼层 |阅读模式
本帖最后由 漠北骑兵KEN 于 2018-4-13 20:40 编辑

凹形线框.PNG 凹形线框-02.PNG 在grasshopper中可以通过Convex Hull获得凸点阵的外边界形态,但是如果是凹形态的点阵又该什么办呢?我的第一个想法是在凸多边形的基础上改良,用最近点的方式来找凹点,这个方式在凹得不深的情况下还是勉强能行的,但是如果像上图那样凹得比较厉害就没用了。第二想法是想找出每列点中端头的两个点,上图中是X值相同,找Y值最大和最小的,最后把每一列中Y值最大的和最小的分别相连,再组合成最终的多边形。我遇到的问题是:1.在第一个想法中,有什么办法让已经用Convex Hull生成的折线往凹点靠,找到凹得较深的点;2.第二个想法,我已经用Sort Points把点阵排列了一下,但是我不知道该怎么把X值相同的点分在同一个数据组里,求大神们帮忙。。。。谢谢啦...第二张图里面,黑色线框是理想的凹形折线,红色线框是第一种想法的实际结果。
发表于 2018-4-14 11:13:16 | 显示全部楼层
可以试试这个
001.png
 楼主| 发表于 2018-4-14 14:46:59 | 显示全部楼层

凹形线框-03.PNG 非常感谢!!我用你的方式实现了。。。我又想了想我昨天说的第二种方式,其实思维上不对,像我现在贴出来的这种点形态,用第二种思路是弄不出来的。。。再次感谢!!!
发表于 2018-4-14 16:42:02 | 显示全部楼层
漠北骑兵KEN 发表于 2018-4-14 14:46
非常感谢!!我用你的方式实现了。。。我又想了想我昨天说的第二种方式,其实思维上不对,像我现在贴出来 ...

楼主客气了
 楼主| 发表于 2018-4-14 19:49:33 | 显示全部楼层

我又试了试,这个方法有个小缺点,就是当点的数量比较多的时候,比如有一千个,甚至上万的时候,电脑就会很卡。我想的是在点阵当中,手动画一个靠近边缘的图形,再通过是否在图形外来选取靠外侧的点,最后再使用你说的方法来做凹折线。。。不过有没有不用手动画图形的方式来减少点的数量啊?非常感谢啊!!
发表于 2018-4-16 15:29:52 | 显示全部楼层
漠北骑兵KEN 发表于 2018-4-14 19:49
我又试了试,这个方法有个小缺点,就是当点的数量比较多的时候,比如有一千个,甚至上万的时候,电脑就会 ...

试下这个,这种处理方式似乎更快
001.png
 楼主| 发表于 2018-4-18 15:03:04 | 显示全部楼层
安豆 发表于 2018-4-16 15:29
试下这个,这种处理方式似乎更快

非常感谢,哈哈哈。。。厉害厉害!!
发表于 2018-4-18 17:10:00 | 显示全部楼层
本帖最后由 安豆 于 2018-4-18 17:26 编辑
漠北骑兵KEN 发表于 2018-4-18 15:03
非常感谢,哈哈哈。。。厉害厉害!!

最后那个点排序有点多余。。。不用那个排序那些点也有办法正确的排序 001.png
 楼主| 发表于 2018-4-18 18:40:13 | 显示全部楼层
安豆 发表于 2018-4-18 17:10
最后那个点排序有点多余。。。不用那个排序那些点也有办法正确的排序

最后那个点排序我自己调整了下,能用,再次感谢!!

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-4-16 14:21 , Processed in 0.074264 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表