NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8700|回复: 9

数字冥想P217求助

[复制链接]
发表于 2017-12-22 15:39:36 | 显示全部楼层 |阅读模式
在书P217案例中,通过在楼板线上的控制点生成3个构造点这一部分中,个人发现有可能会生成圆上靠的很近的三个点,并生成边长较小的小三角形,这样会在下一步优化中去除靠的过近的点的时候导致三角形的三个点有可能被删成2个点从而发生错误,想问一下有没有可能在圆上随机挑选三个点的这一步,能够加入某种机制使三个点不会靠的太近,请问大家有没有什么思路呢。

QQ截图20171222153924.jpg
发表于 2017-12-23 15:19:56 | 显示全部楼层
可以把Random分成三个,然后每个独立定义不同的随机区间。

点评

谢谢大大的回复,后来自己又有一点思考,想请您看一下 第一个是自己试着做了一下关于圆上三个区间的设定,想达到的目的是让三个取点之间的间距都能够保持>0.2,新手会的电池组不多,搭出来的比较繁琐,看看能否指  详情 回复 发表于 2017-12-25 11:29
 楼主| 发表于 2017-12-25 11:29:25 | 显示全部楼层
skywoolf 发表于 2017-12-23 15:19
可以把Random分成三个,然后每个独立定义不同的随机区间。

谢谢大大的回复,后来自己又有一点思考,想请您看一下
第一个是自己试着做了一下关于圆上三个区间的设定,想达到的目的是让三个取点之间的间距都能够保持>0.2,新手会的电池组不多,搭出来的比较繁琐,看看能否指点一下。
第二点是关于书中P216的删除距离较近的点这一步,个人在做的过程发现如果之前的多边形中有边长较短的三角形,则会因为删除点之后只有2个点而发生报错,所以这一步是否可以加一步筛选,只有多边形边数多于3的才参加cullpt的筛选,这样可以保证不会报错。

数字冥想P218圆上取点的算法.gh

16.84 KB, 下载次数: 3, 下载积分: 照度 -1 lux

点评

区间>0.2的话,可以第一设置0 to 0.2 第二个设置0.4 to 0.6 ……这样就可以 然后筛选逻辑,完全可以再优化。我们在实际应用中会遇到很多小bug,都需要植入新的逻辑来解。书中展示的还是更大众一点的宏观逻辑。  详情 回复 发表于 2017-12-25 15:03
发表于 2017-12-25 15:03:27 | 显示全部楼层
kss13 发表于 2017-12-25 11:29
谢谢大大的回复,后来自己又有一点思考,想请您看一下
第一个是自己试着做了一下关于圆上三个区间的设定 ...

区间>0.2的话,可以第一设置0 to 0.2  第二个设置0.4 to 0.6 ……这样就可以

然后筛选逻辑,完全可以再优化。我们在实际应用中会遇到很多小bug,都需要植入新的逻辑来解。书中展示的还是更大众一点的宏观逻辑。
发表于 2018-1-3 22:11:19 | 显示全部楼层
QQ图片20180103215959.png 楼主,为什么这个位置要减去0.2啊,

点评

减去0.2的意思是我希望能够点与点之间的最小间距t值控制在0.2以上  详情 回复 发表于 2018-1-5 16:53
发表于 2018-1-3 22:20:22 | 显示全部楼层
QQ图片20180103221932.png 这个数量应该是圆的数量吧
 楼主| 发表于 2018-1-5 16:53:55 | 显示全部楼层
lewels 发表于 2018-1-3 22:11
楼主,为什么这个位置要减去0.2啊,

减去0.2的意思是我希望能够点与点之间的最小间距t值控制在0.2以上
发表于 2018-1-5 21:49:50 | 显示全部楼层
kss13 发表于 2018-1-5 16:53
减去0.2的意思是我希望能够点与点之间的最小间距t值控制在0.2以上

但是你用一个小于0.5的值减去0.2  是这样的算法吗

点评

这总共是一个圆嘛,然后我先取了A和B点,当AB间距小于0.5的时候,那我的C肯定就是在AB两点分隔出来的长度较长的那段圆弧里取点C,然后我希望C点与AB的距离都大于0.5,所以C点的第一个取值范围是0到A-0.2,第二个取值  详情 回复 发表于 2018-1-7 18:17
 楼主| 发表于 2018-1-7 18:17:14 | 显示全部楼层
lewels 发表于 2018-1-5 21:49
但是你用一个小于0.5的值减去0.2  是这样的算法吗

这总共是一个圆嘛,然后我先取了A和B点,当AB间距小于0.5的时候,那我的C肯定就是在AB两点分隔出来的长度较长的那段圆弧里取点C,然后我希望C点与AB的距离都大于0.5,所以C点的第一个取值范围是0到A-0.2,第二个取值范围是B+0.2到1,我这个方法比较笨,也是自己随便想的,看看就好啦。
发表于 2018-1-7 21:40:52 | 显示全部楼层
kss13 发表于 2018-1-7 18:17
这总共是一个圆嘛,然后我先取了A和B点,当AB间距小于0.5的时候,那我的C肯定就是在AB两点分隔出来的长度 ...

明白了  谢谢

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

GMT+8, 2024-4-16 15:32 , Processed in 0.069524 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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