POV-Ray中使用declare递归定义Sierpinski结构

原文出处:http://cgpad.com/SPAN/articles_show/293

 

 declare可以定义object,而且有意思的是,declare可以对object进行递归定义。下面是我用此种方法做的Sierpinski结构:


#declare __object = sphere { <0, 0, 0>, 0.2
texture { __texture } 
}

#declare __iter = 0;
#while (__iter <= 6)
 #declare __object = union{  
  object{__object pigment {color rgb <0.0, 0.45, 0.0>}}
  object{__object translate x * 0.6  scale 0.5 pigment {color rgb <0.5, 0.45, 0.0>}}
  object{__object translate y * 0.6  scale 0.5 pigment {color rgb <0.5, 0.65, 0.0>}}
  object{__object translate z * 0.6  scale 0.5 pigment {color rgb <0.8, 0.45, 0.0>}}
 }
 #local __iter = __iter + 1;
#end

object{__object translate <0.3, 0.1, 0> scale 4.8 translate <-1.1, -0.4, 0>}

其中,初始元__object被定义为半径为0.2的球体,在后面的递归重新定义中,被copy了三次,每次移动一个0.6的距离并缩小一半。下图是渲染结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值