Here is one excellent resource for all of the things you mentioned: Introduction to Computing with Geometry by Dr. C.-K. Shene https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/
When I was implementing these, the key was to visualise everything. It was much easier to see if things are correct by stepping through the algorithms graphically than just by looking at the math.