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}
}]
```