Start with blue (0/0/255) into first loop. Every turn adds a little green, and when green is 255, subtracts a little blue, until you reach pure green (0/255/0). Then begin a second loop, that adds red and subtracts green, until there is clear red. Start 000/000/255 (blue) 000/010/255 000/020/255 000/030/255 ... 000/255/255 (cyan) 000/255/240 000/255/230 000/255/220 ... 000/255/000 (green) 010/255/000 020/255/000 030/255/000 ... 255/255/000 (yellow) 255/240/000 255/230/000 255/220/000 ... 255/000/000 (red) As you can see, there are four loops like that: for(int green=0; green<256; green++){ colors.Add(new Color( 0, green, 255 )); } for(int blue=255; blue>-1; blue--){ colors.Add(new Color( 0, 255, blue )); } DISCLAIMER: This response in not tested, it's simple guesswork. _________________________________ Please inform me about my English mistakes, as I'm still trying to learn your language!