Das ist eigentlich recht einfach. Das Schwierigste ist die Definition des Abstands. Wenn man eifnach den Satz des Pythagoras anwenden würde, wäre es nicht überall am Rand gleich Dunkel. Wie du das definierst überlasse ich daher dir.
Delphi-Quellcode:
function Gray(value: byte): tcolor
begin
result :=
rgb(value,value,value);
end;
...
Panel.Color := Gray(distance*255
div max_distance);