вот я зарисовал в общем. большой квадрат - наше окно размером 10 на 10. видим прямую y = kx + b, по ней двигается наш шарик, отложим прямую с противоположным углом наклона y = -kx + b. теперь мы имеем полное право на параллельный перенос прямой вдоль перпендикуляра, я это показал пунктиром, в итоге у нас отложилась прямая параллельная y = -kx + b, но имеющая общую точку с прямой y = kx + b, эта общая точка - точка столкновения шарика с окном, значит она служит концом предыдущего вектора движения шарика и началом следующего, вот такие пироги, сорямба за кривой чертёж как смог
пытаться выразить движение в форме y=f(x) - плохая идея.
вопервых сложно, например когда по x он не двигается, а падает равноускоренно вниз, невыражается этой формой.
но несложно будет записать в параметрическоu:
x=x(t)
y=y(t)
достаточно хранить вместе с объектом его координаты и две компоненты скорости.
отражение от вертикальных или горизонтальных препятствий в этом случае очень простое - меняется направление (знак) соотв. скорости.