Option 1: Calculate the angle with a little Trig. You know that you have a triangle formed by the radius (R), the tangent line (T) and the line from point to radius point (H), You know (or can easily get) the lengths of the last 2 so the angle from the H to T would be arcsine (r/h). Now add or subtract the found angle to/from the angle of H.
Option 2: Similarly, you can calculate the length of the Tangent line since it a basic right triangle. Construct a temporary circle from the known point having that radius and use IntersectWith between the circle and arc to find the point of tangency.
I use this piece of code from @_gile :
Public Function GetTangentsTo(ByVal arc As CircularArc2d, ByVal pt As Point2d) As Point2d
Dim center As Point2d = arc.Center
If pt.GetDistanceTo(center) <= arc.Radius Then Return Nothing
Dim vec As Vector2d = center.GetVectorTo(pt) / 2.0
Dim tmp As CircularArc2d = New CircularArc2d(center + vec, vec.Length)
Dim inters As Point2d() = arc.IntersectWith(tmp)
If inters Is Nothing Then Return Nothing
Dim tanPt As Point2d
If inters(0).X > inters(1).X Then
tanPt = inters(0)
Else
tanPt = inters(1)
End If
Return New Point3d(tanPt.X, tanPt.Y)
End Function
You might want to read this:
https://drive-cad-with-code.blogspot.com/2022/02/where-tangent-point-is-show-it-when.html