---
title: "polygon"
excerpt: "Create a regular polygon with the specified number of sides that is either inscribed or circumscribed around a circle of the specified radius."
layout: manual
---

Create a regular polygon with the specified number of sides that is either inscribed or circumscribed around a circle of the specified radius.



```js
polygon(data: PolygonData, sketch_surface_or_group: SketchOrSurface, tag?: TagDeclarator) -> Sketch
```


### Arguments

| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `data` | [`PolygonData`](/docs/kcl/types/PolygonData) | Data for drawing a polygon | Yes |
| `sketch_surface_or_group` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | A sketch surface or a sketch. | Yes |
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) |  | No |

### Returns

[`Sketch`](/docs/kcl/types/Sketch) - A sketch is a collection of paths.


### Examples

```js
// Create a regular hexagon inscribed in a circle of radius 10
hex = startSketchOn('XY')
  |> polygon({
       radius = 10,
       numSides = 6,
       center = [0, 0],
       inscribed = true
     }, %)

example = extrude(hex, length = 5)
```

![Rendered example of polygon 0](data:image/png;base64,[encoded data, 65432 characters])

```js
// Create a square circumscribed around a circle of radius 5
square = startSketchOn('XY')
  |> polygon({
       radius = 5.0,
       numSides = 4,
       center = [10, 10],
       inscribed = false
     }, %)
example = extrude(square, length = 5)
```

![Rendered example of polygon 1](data:image/png;base64,[encoded data, 72052 characters])


