I have the same object defined by recursive and by iteration. De iterative
definition is much faster on rendering.
Can someone provide some insight why this is ?
==== example ====
num=20;
module ring(){
rotate_extrude() translate([10,0,0]) circle(r=2);
}
module ring_r(count,maxcount,angle) {
if (count<=maxcount) {
ring();
if ((count%4)==0)
rotate([0,0,angle]) translate([14,0,0]) rotate([90,0,0])
ring_r(count+1,maxcount,angle);
if ((count%4)==1)
rotate([0,angle,0]) translate([14,0,0]) rotate([90,0,0])
ring_r(count+1,maxcount,angle);
if ((count%4)==2)
rotate([0,0,-angle]) translate([14,0,0]) rotate([90,0,0])
ring_r(count+1,maxcount,angle);
if ((count%4)==3)
rotate([0,-angle,0]) translate([14,0,0]) rotate([90,0,0])
ring_r(count+1,maxcount,angle);
}
}
module iterative() {
for (i=[0:num-1])
rotate([0,0,i360/num])
translate([40,0,0])
rotate([0,i90,0])
scale([0.7,1,1])
ring();
}
module nested() {
}
module recursive() {
ring_r(0,19,18);
}
//iterative();
recursive();
--
View this message in context: http://forum.openscad.org/Why-are-recursive-definitions-slow-tp12427.html
Sent from the OpenSCAD mailing list archive at Nabble.com.