...y otra manera, aunque quiza sea mas dificil de implementar, seria usando el concepto de R³ como dice Delphius: crear un vector en R,G,B y ir desplazandolo gradualmente sin modificar su modulo. No estoy seguro si funcionaria
pero podrias probar. Saludos de nuevo.