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,ImageSizeMedium,VertexColorsTable[Hue[h],{h,0,1,1/n}],LeadingEdgeForm@Thick]]
Out[]=