Newsgroup: it.comp.lang.javascript
Titolo: Ordinare i colori per tavolozza

Ciao a tutti,
forse questa potrebbe essere una domanda OT per questo NG, pero' ci provo
cmq...
sapete indicarmi una funzione o una procedura per fare una tavolozza dei 216
colori sicuri ORDINATA cioe' con tonalita' graduali
Io ad es. ho fatto una cosa del genere:
ParCol = new Array( "FF", "CC", "99", "66", "33", "00" );
for( i = 0; i < 6; ++i )
 for( j = 0; j < 6; ++j )
  for( s = 0; s < 6; ++s )
   document.writeln( '<div style="background:#' +
    ParCol[i] + ParCol[j] + ParCol[s] +'"></div>');
pero' il risultata e' giustamente diverso da quello che cercavo di
ottenere...
Qualcuno puo' aiutarmi
Grazie


Vedi se cosě va
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<script>
mesk=new
Array();mesk[10]="A";mesk[11]="B";mesk[12]="C";mesk[13]="D";mesk[14]="E";mes
k[15]="F";A=10;B=11;C=12;D=13;E=14;F=15;let="ABCDEF";function
mes(num){if(let.indexOf(num) != -1){return eval(num)};else{if(num <
10){return eval(num)};else{return mesk[num]}}};
function color(begin,einde,stappen,stap){
hh1=(mes(begin.charAt(0))*16)+mes(begin.charAt(1));
hh2=(mes(begin.charAt(2))*16)+mes(begin.charAt(3));
hh3=(mes(begin.charAt(4))*16)+mes(begin.charAt(5));
pp1=(mes(einde.charAt(0))*16)+mes(einde.charAt(1));
pp2=(mes(einde.charAt(2))*16)+mes(einde.charAt(3));
pp3=(mes(einde.charAt(4))*16)+mes(einde.charAt(5));
if(hh1 < pp1){ff1=hh1+Math.floor((pp1-hh1)/stappen*stap);
ff1=eval("\'"+mes(Math.floor(ff1/16))+"\'")+eval("\'"+mes(ff1-(Math.floor(ff
1/16)*16))+"\'");}
;else{ff1=hh1-Math.floor((hh1-pp1)/stappen*stap);
ff1=eval("\'"+mes(Math.floor(ff1/16))+"\'")+eval("\'"+mes(ff1-(Math.floor(ff
1/16)*16))+"\'");}
if(hh2 < pp2){ff2=hh2+Math.floor((pp2-hh2)/stappen*stap);
ff2=eval("\'"+mes(Math.floor(ff2/16))+"\'")+eval("\'"+mes(ff2-(Math.floor(ff
2/16)*16))+"\'");}
;else{ff2=hh2-Math.floor((hh2-pp2)/stappen*stap);
ff2=eval("\'"+mes(Math.floor(ff2/16))+"\'")+eval("\'"+mes(ff2-(Math.floor(ff
2/16)*16))+"\'");}
if(hh3 < pp3){ff3=hh3+Math.floor((pp3-hh3)/stappen*stap);
ff3=eval("\'"+mes(Math.floor(ff3/16))+"\'")+eval("\'"+mes(ff3-(Math.floor(ff
3/16)*16))+"\'");}
;else{ff3=hh3-Math.floor((hh3-pp3)/stappen*stap);
ff3=eval("\'"+mes(Math.floor(ff3/16))+"\'")+eval("\'"+mes(ff3-(Math.floor(ff
3/16)*16))+"\'");}
;return ff1+ff2+ff3}
</script>
<title>Nuova pagina 1</title>
<meta name="Microsoft Theme" content="network 011, default">
</head>
<body onmouseup="uu.style.background=uu.value">
<div id="hh">
</div>
<script>
ll=""
txt1=0
txt2=0
txt3=0
ff=0;gg=0
for(i=0;i != 195;i++){
if(ff == 15){ff=0;gg++}
ll=ll+"<span
style='position:absolute;width:10;height:10;Z-index:"+i+";left:"+(ff*10)+";t
op:"+(gg*10)+";background:#"+mes(txt3)+""+mes(txt3)+""+mes(txt2)+""+mes(txt2
)+""+mes(txt1)+""+mes(txt1)+"' onclick='if(rr2.style.visibility ==
\"visible\"){clearTimeout(qsl)};txt1=0;ll=\"\";rr2.style.height=15;document.
all.uu.value=\"#"+mes(txt3)+""+mes(txt3)+""+mes(txt2)+""+mes(txt2)+""+mes(tx
t1)+""+mes(txt1)+"\";aa(\""+mes(txt3)+""+mes(txt3)+""+mes(txt2)+""+mes(txt2)
+""+mes(txt1)+""+mes(txt1)+"\");uu.style.background=uu.value'></span>"
ff++
if(txt1 != 15){txt1=txt1+3};else{if(txt2 !=
15){txt2=txt2+3;txt1=0};else{if(txt3 != 15){txt3=txt3+3;txt2=0}}}
};ll=ll+"<span
style='position:absolute;Z-index:196;left:0;top:"+((gg+1)*10)+";'><input
type='text' style='width:170' name='uu'
onchange='alert()'></span>";hh.innerHTML=ll+"<span id='rr' name='rr'
style='Z-index:10;background:blue;position:absolute;left:150;top:0;height:13
0;width:20;'></span><span id='rr2' name='rr2'
style='Z-index:15;visibility:hidden;background:red;position:absolute;left:15
0;top:0;height:145;width:20;'></span>"
function aa(ww){
rr2.style.visibility="visible"
ll=ll+"<span
onclick='document.all.uu.value=\"#"+color("000000",ww,65,txt1)+"\";uu.style.
background=uu.value'
style='position:absolute;left:0;top:"+txt1+";width:20;height:10;background:#
"+color("000000",ww,65,txt1)+"'></span>"
txt1++
rr2.style.top=130-txt1
rr2.style.height=txt1+15
if(txt1 != 65){
qsl=setTimeout("aa('"+ww+"')",1)
};else{aa2(ww)}
}
function aa2(ww){
ll=ll+"<span
onclick='document.all.uu.value=\"#"+color(ww,"FFFFFF",65,(txt1-65))+"\";uu.s
tyle.background=uu.value'
style='position:absolute;left:0;top:"+txt1+";width:20;height:10;background:#
"+color(ww,"FFFFFF",65,(txt1-65))+"'></span>"
txt1++
rr2.style.top=130-txt1
rr2.style.height=txt1+15
if(txt1 != 130){
qsl=setTimeout("aa2('"+ww+"')",1)
};else{rr2.style.visibility="hidden";rr.innerHTML=ll}
}
</script>
</body>
</html>
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 MAssimiliano Amendola            
www.accessgroup.it
Grazie Massimiliano,
quello che mi hai mandato e' decisamente interessante!
(anche se ci ho messo un po' a ricostruirlo e a togliere tutti quei ; prima
degli else che non mi facevano andare niente...)
Pero' quello che che cercavo io e' qualcosa forse anche di piu'
semplice:
a me servirebbe ordinare solo i colori sicuri, in un ordine tipo: bianco,
giallo, arancione, rosso, viola, blu, verde (nelle varie tonalita')
Hai mica qualcos'altro da propormi?  -_^
Ciao

 giallo, arancione, rosso, viola, blu, verde (nelle varie tonalita')
scusa la domanda scema, ma che sono i colori "sicuri"? Intendi quelli per l'
accessibilita' dei siti web? Ma non fai prima a usare uno dei tanti siti
dove sono gia' disponibili? (uno a caso trovato con google
http://www.echoecho.com/it/htmlhexcolors07.htm
)
-- 
Firma in costruzione



Come ottenere i colori l'ho capito e' semplice (ed e' vero di siti in giro
ce n'e' abbastanza). Tuttavia, quello che interessa a me e' un'algoritmo
per ordinarli armoniosamente (considerando ragionevolmente le varie
tonalita' di colore)
Grazie cmq
 

 armoniosamente
"armoniosamente" e' un concetto assai vago ^^;
tieni conto, poi, che alla fine quello che dovresti rappresentare e' una
matrice tridimensionale (un cubo, insomma) di "coordinate" i valori di
rosso, verde e blu.
Mettiamola cosi': tu come lo faresti su un foglio di carta?
-- 
Firma in costruzione

 
Non so' se ti puo' essere utile, avevo costruito una tabella qualche tempo
fa. in php  simile a questa ( penso armoniosamente corretta)
http://www.ddg-sport.ch/ct.php
Non ci vuole nulla a trasformala in JS
    <table cellpadding="0" cellspacing="0">
      <tr><td >
    <?php
  $col = array('FF','CC','99','66','33','00');
   for($c =0; $c <6; $c++){
     for($e=0; $e <6; $e++){
	 for($g=0; $g <6; $g++){
	 if(is_int($i/12) && $i>0) {echo "<br>";}$i++;
echo  "<input type=\"button\" 
style=\"background-color:#".$col[$c].$col[$e].$col[$g].";border:1px 
solid;width:36px;height:24px;\" title=\"#".$col[$c].$col[$e].$col[$g]."\">";
           }
    }
}
?>  </td></tr></table>

 tonalita' di colore)
Vedi se può esserti utile:
 
http://www.criosoftware.it/default43.aspx
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

  
http://www.criosoftware.it/default43.aspx
Ma grande e' veramente bello!!!
E' ancora meglio di quello che potevo sperare!
Ciao e grazie alla prossima!

  
http://www.criosoftware.it/default43.aspx


 ...
Ti ringrazio, intendevo una cosa come mi ha dato Cristiano Larghi
(
http://www.criosoftware.it/default43.aspx
)
Cmq grazie
Ciao

 E' ancora meglio di quello che potevo sperare!
:-) sinceramente non pensavo (se ne sbatte della tua richiesta di questi
"216 colori sicuri" che non so cosa siano ...)
Attenzione però che andando di 15 in 15 (ho scelto 15 perché é 255/5/3)
noto un rallentamento di 2-3 secondi, andrebbe testato su pc con poca ram
(prima che su vecchi pc ti inchioda il sito per 1 minuto!). Se è lento puoi
sostituire il 15 (nei 3 for) con 51 (255/5) e vedere cosa succede.
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 sostituire il 15 (nei 3 for) con 51 (255/5) e vedere cosa succede.
Si ti ringrazio sto gia provvedendo a modificarlo:
per ottenere i colori sicuri (web-safe) devo incrementare di 51
e poi io farei 216 document.write( '<div...>' );
ciao

  
http://www.criosoftware.it/default43.aspx
Ops rettifico
:-(
Mi ha un po' tradito la quantita' di colori e a prima vista mi sembrava
diverso, ma alla fine non cambia molto da quello che facevo io (sto parlando
di ordinamento)
Cmq ti ringrazio lo stesso


Grazie ma e' la stessa cosa che ho fatto io.
Cmq mi sta venendo un idea....

 Cmq mi sta venendo un idea....
Ma che idea , quale idea :-)

 Ma che idea , quale idea :-)
Per come ordinarli un po' meglio
con qualche ciclo for in piu'...
Ma mi sa che per il momento "passo" altrimenti oggi non combino niente...
Ciao