Как только вы достигнете 0 для i, вы просто начнете делать то же самое для двух других каналов, поэтому он постепенно станет черным или исчезнет.
setColor(new Color(255 - (i * 5), 0, 255 - (i * 5)));
Длина зависит от размера шага (который в вашем случае равен 5 и, следовательно, длина отпечатка равна 51). Таким образом, если вы хотите короткий оттиск, вы должны сделать numSteps = 255 / length
оттиска (проблему округления не следует игнорировать):
i = numSteps..0
setColor(new Color(255 - (i * step), 0, 255 - (i * step)));