---
title: "circleThreePoint"
excerpt: "Construct a circle derived from 3 points."
layout: manual
---

Construct a circle derived from 3 points.



```js
circleThreePoint(p1: [number], p2: [number], p3: [number], sketch_surface_or_group: SketchOrSurface, tag?: TagDeclarator) -> Sketch
```


### Arguments

| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `p1` | `[number]` | 1st point to derive the circle. | Yes |
| `p2` | `[number]` | 2nd point to derive the circle. | Yes |
| `p3` | `[number]` | 3rd point to derive the circle. | Yes |
| `sketch_surface_or_group` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | Plane or surface to sketch on. | Yes |
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Identifier for the circle to reference elsewhere. | No |

### Returns

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


### Examples

```js
exampleSketch = startSketchOn("XY")
  |> circleThreePoint(p1 = [10, 10], p2 = [20, 8], p3 = [15, 5])
  |> extrude(length = 5)
```

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


