Block[{angle=2Pi/8,res},res=Echo@NMinimize[{Norm[p1-p2],Norm[p1]≤1,Norm[p2-center2]≤1,Element[p1,InfiniteLine[AngleVector[angle],-AngleVector[angle]]],Element[center2,InfiniteLine[{3,0},{0,1}]]},{p1∈Vectors[2,Reals],p2∈Vectors[2,Reals],center2∈Vectors[2,Reals]},Method{"NelderMead","InitialPoints"->{Flatten[{AngleVector[angle],RandomPoint[Disk[{3,0},20]],{RandomReal[{-1,1}],3}}](*,Flatten[{AngleVector[angle],RandomPoint[Disk[center2,1]]}]*)}}];Graphics[{{Lighter[Blue],Disk[]},{Lighter[Red],Disk[center2]/.res〚2〛},{Green,PointSize[0.03],Point[{p1,p2}/.res〚2〛],{Black,InfiniteLine[AngleVector[angle],-AngleVector[angle]],Darker@Green,InfiniteLine[{3,0},{0,1}]}}},Axes->True]]