Crop a Pentagram with a Pentagon
rp = RegularPolygon[5];
pentagram = BoundaryDiscretizeRegion @ Polygon @
CirclePoints[{1, 3 Pi/10}, 5][[{1, 3, 5, 2, 4}]];
Graphics[{MeshPrimitives[RegionIntersection[rp, pentagram], 1], RegionBoundary[rp]}]
pentagram = N@Table[{Cos[k 2 \[Pi]/5 + 3 \[Pi]/10], Sin[k 2 \[Pi]/5 + 3 \[Pi]/10]}, {k, 0, 4*2*5, 2}];
lines = RegionIntersection[RegularPolygon[5], Line[pentagram]];
Graphics[{
EdgeForm[{Thin, Black}],
FaceForm[],
RegularPolygon[5],
lines
}]
The region-based solutions are nice, but do more work than necessary. Allow me to present a method based on linear interpolation with some clever shuffling:
Manipulate[With[{sides = Partition[CirclePoints[5], 2, 1, 1]},
Graphics[{{FaceForm[], EdgeForm[Black], RegularPolygon[5]},
Line /@ Transpose[{{1 - u, u}.# & /@ sides,
RotateLeft[{u, 1 - u}.# & /@ sides, 2]}]}]],
{{u, (3 - GoldenRatio)/5}, 0, 1}]
Values of u
that are greater than $1/2$ will generate your cropped pentagram, e.g.