Get a Distinctive Color from a Set of Colors


// GetIndexedRGBColor(colorIndex, red, green, blue)
// Given an index from 0 to 15, returns a color as r, g and b.
// colorIndex is an input. red, green and blue are outputs.
// Example:
// Function Test()
//	Variable i
//	for(i=0; i<10; i+=1)
//		Variable red, green, blue
//		GetColor(i, red, green, blue)
//		Printf "%d: red=%d, green=%d, blue=%d\r", red, green, blue
//	endfor
// End
Function GetIndexedRGBColor(colorIndex, red, green, blue)
	Variable colorIndex
	Variable &red, &green, &blue				// Outputs

	Variable numColors = 16					// Number of colors in the following switch
	
	colorIndex = mod(colorIndex, numColors)			// Wrap around if necessary
	switch(colorIndex)
		case 0:		// Time wave
			red = 0; green = 0; blue = 0;								// Black
			break
			
		case 1:
			red = 65535; green = 16385; blue = 16385;			// Red
			break
			
		case 2:
			red = 2; green = 39321; blue = 1;						// Green
			break
			
		case 3:
			red = 0; green = 0; blue = 65535;						// Blue
			break
			
		case 4:
			red = 39321; green = 1; blue = 31457;					// Purple
			break
			
		case 5:
			red = 39321; green = 39321; blue = 39321;			// Gray
			break
			
		case 6:
			red = 65535; green = 32768; blue = 32768;			// Salmon
			break
			
		case 7:
			red = 0; green = 65535; blue = 0;						// Lime
			break
			
		case 8:
			red = 16385; green = 65535; blue = 65535;			// Turquoise
			break
			
		case 9:
			red = 65535; green = 32768; blue = 58981;			// Light purple
			break
			
		case 10:
			red = 39321; green = 26208; blue = 1;					// Brown
			break
			
		case 11:
			red = 52428; green = 34958; blue = 1;					// Light brown
			break

		case 12:
			red = 65535; green = 32764; blue = 16385;			// Orange
			break

		case 13:
			red = 1; green = 52428; blue = 26586;					// Teal
			break

		case 14:
			red = 1; green = 3; blue = 39321;						// Dark blue
			break

		case 15:
			red = 65535; green = 49151; blue = 55704;			// Pink
			break
	endswitch
End

Forum

Support

Gallery

Igor Pro 10

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More