graphics – Speed up the intersection of the diagonals of a regular polygon


I need to calculate all the intersection points of the diagonals of a regular polygon, following code is really slow, when n=15, it take about 30sec. I also tried using Graphics`Mesh`FindIntersections, but it did not return all the intersection points.

Clear["`*"];
n = 10;
pts = CirclePoints[N@n];

diag = Delete[Join @@ Table[pts[[{i, j}]], {i, n}, {j, i + 2, n}], n - 2];

Length[intersectionPts = Complement[DeleteDuplicates[DeleteCases[RegionIntersection /@ 
    Subsets[Line /@ diag, {2}], _EmptyRegion], Norm[#1[[1]] - #2[[1]]] < 10^-8 &],
     Point /@ List /@ pts]] // AbsoluteTiming

Graphics[{
  MapIndexed[Text[#2[[1]], 1.1 #] &, pts],
  Line /@ diag,
  {Red, intersectionPts}
  }]

enter image description here