{{newin|[[0.4.0]]|040|type=function}}
Draw a polygon.

Following the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.

{{notice|When in '''fill''' mode, the polygon must be [http://en.wikipedia.org/wiki/Convex_polygon convex] and [http://en.wikipedia.org/wiki/Simple_polygon simple] or rendering artifacts may occur. [[love.math.triangulate]] and [[love.math.isConvex]] can be used in [[0.9.0]]+.}}
== Function ==
=== Synopsis ===
<source lang="lua">
love.graphics.polygon( mode, ... )
</source>
=== Arguments ===
{{param|DrawMode|mode|How to draw the polygon.}}
{{param|number|...|The vertices of the polygon.}}
=== Returns ===
Nothing.
== Function ==
=== Synopsis ===
<source lang="lua">
love.graphics.polygon( mode, vertices )
</source>
=== Arguments ===
{{param|DrawMode|mode|How to draw the polygon.}}
{{param|table|vertices|The vertices of the polygon as a table.}}
=== Returns ===
Nothing.
== Examples ==
=== Two ways of drawing the same triangle ===
[[File:Polygon_triangle.png|upright=0.5|thumb|right|top|Triangle drawn using love.graphics.polygon]]
This example shows how to give the coordinates explicitly and how to pass a table argument.
<source lang="lua">
-- giving the coordinates directly
love.graphics.polygon('fill', 100, 100, 200, 100, 150, 200)

-- defining a table with the coordinates
-- this table could be built incrementally too
local vertices = {100, 100, 200, 100, 150, 200}

-- passing the table to the function as a second argument
love.graphics.polygon('fill', vertices)
</source>

== See Also ==
* [[parent::love.graphics]]
* [[love.math.triangulate]]
* [[love.math.isConvex]]
[[Category:Functions]]
[[Sub-Category::Drawing| ]]
{{#set:Description=Draw a polygon.}}
== Other Languages ==
{{i18n|love.graphics.polygon}}