All those calculations fall apart when:

- Screen resolution changes
- Pong paddle size changes
- Ball speed changes

Resolution should not be hard-coded. Query your system to grab the current screen or viewport width. For a D3D app the viewport info will always be the most accurate for both windowed and full screen mode.

Code:

x += std::cos(BallAngle) * Factor,
y += std::sin(BallAngle) * Factor

Sinf() and cosf() from the CRT should suffice just fine. They are the floating point versions of sin and cos. Sin() and cos() are the double versions.

I don't quite understand your sentence concerning this code. This is essentially the parametric form of a line. I would advise you do some research on mathematical vectors.

The formula is essentially:

Final = Origin + Direction * Distance;

or

Code:

x = x + cosf(angle) * speed;

which is

Code:

x += cosf(angle) * speed;