Domanda

Sto cercando di capire come posso convertire un numero compreso tra 1 e 50 a un colore in scala di grigi che potrebbe essere utilizzato qui:

g.setColor(MyGreyScaleColour);

1 sarebbe più chiaro (bianco) e 50 sarebbe più scuro (nero).

es.

Color intToCol(int colNum)  
{  
code here  
}  

Qualche suggerimento?

È stato utile?

Soluzione

Java utilizza i colori RGB in cui ogni componente (rosso, verde, blu) varia 0-255. Quando tutti i componenti hanno lo stesso valore, si finisce con un colore bianco-nero-grigio. Le combinazioni più vicino al 255 sarebbe più bianca e più vicino a 0 sarebbe stato tutto nero. La funzione qui sotto restituirebbe un colore grigiastro, con la quantità di bianco in scala di conseguenza con l'ingresso.

Color intToCol(int colNum)
{
  int rgbNum = 255 - (int) ((colNum/50.0)*255.0);
  return new Color (rgbNum,rgbNum,rgbNum);
}

Altri suggerimenti

Qualcosa di simile:

float grey = (50 - colNum) / 49f;
return new Color(grey, grey, grey);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top