openjscad-aurora-webapp
46 строк · 1.1 Кб
1// title: Colors
2// author: Rene K. Mueller
3// license: MIT License
4// tags: RGB, RGBA
5
6function spread() {7var a = Array.prototype.slice.call(arguments);8var p = null;9var type = 'linear';10var spacing = 1;11
12if(a[0].type) p = a.shift(); // first argument { type: 'something' }?13if(a[0].length) a = a[0]; // element is an array?14if(p&&p.type) type = p.type;15if(p&&p.spacing) spacing = p.spacing;16
17if(type=='circular') {18;19
20} else {21var rows = Math.floor(Math.sqrt(a.length));22if(p&&p.rows) rows = p.rows;23if(rows<1) rows = 1;24for(i=0; i<a.length; i++) {25a[i] = a[i].translate([(i%rows)*spacing,Math.floor(i/rows)*spacing,0]);26}27}28return a;29}
30
31function main() {32var o = [];33
34o.push( color([1,0,0],sphere()) );35o.push( color([0,1,0],cube()) );36o.push( color([0,0,1],cylinder()) );37
38o.push( color("red",sphere()) );39o.push( color("green", cube()) );40o.push( color("blue", cylinder()) );41
42for(var i=0; i<1; i+=1/12) {43o.push( cube().setColor(hsl2rgb(i,1,0.5)) );44}45return spread({type: 'linear', spacing: 3, rows: 3}, o);46}
47
48