Rhino(犀牛)中国技术支持与推广中心

标题: 关于grasshopper接入ghpython的数据结构问题和ghpython的Loop问题 [打印本页]

作者: zhugesilang    时间: 2015-10-10 18:20
标题: 关于grasshopper接入ghpython的数据结构问题和ghpython的Loop问题
大家好,
我是ghpython新手,今天在工作过程中遇到了一个很棘手的问题,思考很长时间无法解决,希望论坛里的大神能伸出援手。


问题是这样的。我做了80个大小相等的矩形标准单元,想从中随机取出几个2倍大小或4倍大小的矩形作为特殊单元(图中又红点标识出来的就是挑选出来的特殊单元),然后我想将这些单元从原来80个标准单元的list中删除,以免重复。我的思路是,在ghpython中通过循环,逐一判断80个标准单元与这12个特殊单元的中心点之间的包含关系,将所有结果为False的单元放到一个新的List里面,从而达到目的。
按照预计,新列表里应该包含(80-12=68)个数据,但是我得到的结果却是(80*12=960)个数据。python代码如下:

所以我的问题是,1.在ghpython中应该怎么实现这个运算?2.从grasshopper到ghpython,其树状数据结构是如何对应python里的数据结构的?item access/list access/tree access应该如何正确使用?3. 如果只用grasshopper的话,该怎么实现这个算法?
问题有点多,希望论坛里的高手不吝赐教。感激不尽。
附上gh源文件。gh版本0.9.0076
活字印刷墙面.rar (14.13 KB, 下载次数: 65)

作者: zhugesilang    时间: 2015-10-10 18:27
补充,只用grasshopper的话,通过RegionDifference可以实现。

但是感觉这个方法有些粗暴,不知道各位大神有没有更优美的只通过grasshopper来实现的方法?
再次感谢
作者: 筑梦NARUTO    时间: 2015-10-10 19:40
你这个做这样的效果做复杂了。自己看文件吧,复杂度没给你改,代码给你改了下

QQ图片20151010193019.png (156.11 KB, 下载次数: 26)

QQ图片20151010193019.png

活字印刷墙面.zip

21.4 KB, 下载次数: 49


作者: 安全下载    时间: 2015-10-12 14:23
不错不错!
作者: ly871108    时间: 2016-2-14 00:57
感谢分享……
作者: 诸葛四郎    时间: 2016-6-16 09:38
筑梦NARUTO 发表于 2015-10-10 19:40
你这个做这样的效果做复杂了。自己看文件吧,复杂度没给你改,代码给你改了下

您好,今天在做另一个项目的时候又碰到了同样的问题,用您之前给出的方法做了出来,不过还是想问一下您之前说做这样的效果做复杂了是指Python里面用来删除挑选出的单元的那段代码写复杂了吗?如果是有什么简单的方法吗?求赐教




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2