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

enter image description here


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

enter image description here


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

Manipulate object

Values of u that are greater than $1/2$ will generate your cropped pentagram, e.g.

Manipulate object