En memoria tienes dos variables x e y con la posición del circulo (por ejemplo, del centro del circulo).
Tienes otras dos variables incrementoX e incrementoY, que pueden valer inicialmente, por ejemplo, 1.
Vas incrementando estas variables x,y sumándoles incrementoX e incrementoY, redibujando el circulo cada vez.
Cuando x sea cercano al borde de la pantalla, haces incrementoX=-incrementoX (le cambias de signo).
Sigues incrementando como antes, pero esta vez el circulo avanzará hacia la izquierda, dando la impresión de que ha rebotado en el borde derecho.
Idem con y.
Se bueno.