CityEngine CGA语法之 随机点函数 scatter

概要

scatter(domain, nPoints, distributionType) { operations }

scatter(domain, nPoints,gaussian, scatterMean, scatterStddev) { operations } 

参数

domain (selstr):指定随机点产生的位置,有三个选项:surface、volume、scope。
nPoints (float):指定点的数量
distributionType (selstr):指定点分布的类型,有两个选项:uniform、gaussian
scatterMean (selstr):可选的参数,指定随机点群的中心相对于当前的scope的位置,有七个选项center、front、back、left、right、top、bottom,默认为center
scatterStddev (float):可选的参数,指定标准差,默认值是0.16. 

注意

只有在几何体是闭合的形状时,domain才能使用volume,如果不是闭合的,则会采用surface

产生的每一个点的scope的尺寸为0

产生的每一个点只包含一个节点,可以使用替换函数i()来插入模型

示例

一、在表面生成随机点,类型为uniform

attr height   =10
Lot-->
	extrude(height)
	scatter(surface,1000,uniform) {A.}



二、在体内生成随机点,类型为uniform

attr height   =10
Lot-->
	extrude(height)
	scatter(volume,1000,uniform) {A.}




三、在表面生成随机点,类型为gaussian

attr height   =10
Lot-->
	extrude(height)
	scatter(surface,1000,gaussian) {A.}



四、在体内生成随机点,类型为gaussian

attr height   =10
Lot-->
	extrude(height)
	scatter(volume,1000,gaussian) {A.}




五、在scope生成随机点,类型为uniform

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,1000,<span style="font-size:14px;">uniform</span>) {A.}



六、在scope生成随机点,类型为gaussian

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,1000,gaussian) {A.}


七、在scope生成随机点,类型为uniform,设置scatterMean参数

scatterMean为front

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,front,0.9) {A.}
\

scatterMean为left

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,left,0.9) {A.}

scatterMean为bottom

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,bottom,0.9) {A.}


scatterMean为right

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,right,0.9) {A.}



scatterMean为back

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,back,0.9) {A.}


scatterMean为top

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,top,0.9) {A.}


八、设置标准差

标准差越大,点越分散

设置标准差为0.2

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,top,0.2) {A.}


设置标准差为2

attr height   =10
Lot-->
	extrude(height)
	scatter(scope,20,gaussian,top,2) {A.}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值