so did I understand right, those two calculations are needed to calculate the middle CP?
Yes. The proper way to think about it:
To get a smooth curve, the curve tangent at point X must be the same no matter if we point towards the next point X+1, or if we point towards the previous point X-1.
It follows that the only way to get a middle control poitns which agrees with that is the intersection of the two tangents adjacent to it.
Thus, we have no control over the position of this point and the actual lengths of the resulting tangents. (Notice: a curve with continuous velocity needs to have both tangents at the same length too, not just at the same direction.)
We could however play with the inital tangent directions to avoid problems, indirectly moving the middle CP somewhere else. We could do this to deal with parallel tangents for example.
You will see related problems if you continue with quadritc bezier, and after you understood the limitations you'll likely prefer alternatives as mentioned.
But it's good to continue to see this yourself.
In practice, Cubic Bezier or Catmull Rom have more complex math (slightly), but they are much easier to use for satisfying results.
also i'm confused if you have counted two angles how do you do intersection with those?
No angles are needed to calculate the intersaction of two lines - that's ofc. just liner math.
My favourite resurce to look up intersection problems: https://github.com/davideberly/GeometricTools/tree/master/GTE/Mathematics
Look for IntrLine2Line2.h