Accumulating parameters August 07, 2015 08:57AM |
Registered: 11 years ago Posts: 2,472 |
Re: Accumulating parameters August 07, 2015 12:31PM |
Registered: 10 years ago Posts: 119 |
Re: Accumulating parameters August 07, 2015 04:38PM |
Registered: 10 years ago Posts: 590 |
function minxyz(array,J = 0) = [( J < len(array)?min(array [J] [0],minxyz(array,J +1)[0]):99999999) , ( J < len(array)?min(array [J] [1],minxyz(array, J +1)[1]):99999999),( J < len(array)?min(array [J] [2],minxyz(array,J +1)[2]):99999999)]; function maxxyz(array,J = 0) = [( J < len(array)?max(array [J] [0],maxxyz(array, J +1)[0]):0),( J < len(array)?max(array [J] [1],maxxyz(array, J +1)[1]):0),( J < len(array)?max(array [J] [2],maxxyz(array, J +1)[2]):0)]; pts=[[6,5,7],[8,5,8],[7,1,6],[11,4,7]]; // list of points echo(minxyz(pts),maxxyz(pts)); for(p = pts) translate(p)cube([1,1,1]); // draw points color("red",0.5) translate(minxyz(pts))cube(maxxyz(pts)-minxyz(pts)+[1,1,1]); // draw englobing cube
Re: Accumulating parameters August 08, 2015 01:56AM |
Registered: 10 years ago Posts: 590 |
function mina(array,ind,J=0) = ( J < len(array)?min(array [J] [ind],mina(array,ind,J+1)):99999999); function maxa(array,ind,J=0) = ( J < len(array)?max(array [J] [ind],maxa(array,ind,J+1)):0); function minxyz(array,i=0) = [mina(array,0),mina(array,1),mina(array,2)]; function maxxyz(array,i=0) = [maxa(array,0),maxa(array,1),maxa(array,2)]; function minxy(array,i=0) = [mina(array,0),mina(array,1)]; function maxxy(array,i=0) = [maxa(array,0),maxa(array,1)]; pts=[[6,5,7],[8,5,8],[7,1,6],[4,8,5],[3,3,3],[11,4,7]];// point list echo("minxyz=",minxyz(pts)); echo("maxxyz=",maxxyz(pts)); // show points as little cubes for(p = pts) translate(p)cube([1,1,1]); // show englobing cube of all points color("red",0.5)translate(minxyz(pts))cube(maxxyz(pts)-minxyz(pts)+[1,1,1]);
Re: Accumulating parameters August 10, 2015 08:31AM |
Registered: 11 years ago Posts: 2,472 |