openjscad-aurora-webapp

Форк
0
46 строк · 1.1 Кб
1
// title: Colors
2
// author: Rene K. Mueller
3
// license: MIT License
4
// tags: RGB, RGBA
5

6
function spread() {
7
   var a = Array.prototype.slice.call(arguments);
8
   var p = null;
9
   var type = 'linear';
10
   var spacing = 1;
11
   
12
   if(a[0].type) p = a.shift();        // first argument { type: 'something' }?
13
   if(a[0].length) a = a[0];           // element is an array?
14
   if(p&&p.type) type = p.type;
15
   if(p&&p.spacing) spacing = p.spacing;
16
   
17
   if(type=='circular') {
18
      ;
19
      
20
   } else {
21
      var rows = Math.floor(Math.sqrt(a.length));
22
      if(p&&p.rows) rows = p.rows;
23
      if(rows<1) rows = 1;
24
      for(i=0; i<a.length; i++) {
25
         a[i] = a[i].translate([(i%rows)*spacing,Math.floor(i/rows)*spacing,0]);
26
      }
27
   }
28
   return a;
29
}
30

31
function main() {
32
   var o = [];
33
   
34
   o.push( color([1,0,0],sphere()) );
35
   o.push( color([0,1,0],cube()) );
36
   o.push( color([0,0,1],cylinder()) );
37

38
   o.push( color("red",sphere()) );
39
   o.push( color("green", cube()) );
40
   o.push( color("blue", cylinder()) );
41

42
   for(var i=0; i<1; i+=1/12) {
43
      o.push( cube().setColor(hsl2rgb(i,1,0.5)) );
44
   }
45
   return spread({type: 'linear', spacing: 3, rows: 3}, o);
46
}
47

48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.