In[]:=
ClearAll[drawPolygon]Options[drawPolygon]=Join[Options[Graphics],Options[Polygon],{Leading{},Trailing{}}];drawPolygon::msg1="Second argument must be a RGBColor.";drawPolygon::msg2="First argument must be larger than 2.";drawPolygon::msg3="First argument must be an integer larger than 2.";drawPolygon[sides_Integer/;sides>2,color_RGBColor:Orange,opts:OptionsPattern[drawPolygon]]:=Graphics[Join[Flatten[{OptionValue[Leading]}],{color,Polygon[CirclePoints[sides],Range[sides],FilterRules[{opts},Options[Polygon]]]},Flatten[{OptionValue[Trailing]}]],FilterRules[{opts},Options[Graphics]]]drawPolygon[_,color_/;!MatchQ[color,_RGBColor],___]:=""/;Message[drawPolygon::msg1]drawPolygon[sides_Integer/;sides≤2,___]:=""/;Message[drawPolygon::msg2]drawPolygon[sides_/;!IntegerQ[sides],___]:=""/;Message[drawPolygon::msg3]
In[]:=
drawPolygon[7,Leading{EdgeForm@{Dashed,Thick,Blue},FaceForm[]}]
Out[]=
In[]:=
With[{n=12},drawPolygon[n,ImageSizeMedium,VertexColorsTable[Hue[h],{h,0,1,1/n}],LeadingEdgeForm@Thick]]
Out[]=