This is a Java class that uses some trigonometry and vector mathematics in its implementation.

Samsung 34' Odyssey G5 Ultra-Wide Gaming Monitor
Elevate your gaming and productivity with the Samsung 34-Inch Ultra-Wide Monitor – immersive visuals, seamless performance, and stunning clarity!
View on Amazon

An object of type MovingBall holds data about a “ball” that has a color, radius, position, speed, and direction. The ball is restricted to moving around inside a rectangle in the xy-plane. The ball can draw itself in a graphics context and will move when it is told to move.