## Contents

## Tags

## Design Tools

OpenSCAD

## License

Circle passing by three given points in OpenSCAD
by
DarioPellegrini
is licensed under the
Creative Commons - Attribution license.

## Liked By View All

## Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag# Summary

This OpenSCAD module computes the circle passing by three given points on the XY plane.

For faster access, the code contained in the file is pasted below.

```
point1 = [0,0];
point2 = [10,0];
point3 = [0,-10];
module circle3p(p1, p2, p3) {
h=-((p2.y-p1.y)*pow(p3.y,2)+(-pow(p2.y,2)+pow(p1.y,2)-pow(p2.x,2)+pow(p1.x,2))*p3.y+p1.y*pow(p2.y,2)+(-pow(p1.y,2)+pow(p3.x,2)-pow(p1.x,2))*p2.y+(pow(p2.x,2)-pow(p3.x,2))*p1.y)/((2*p2.x-2*p1.x)*p3.y+(2*p1.x-2*p3.x)*p2.y+(2*p3.x-2*p2.x)*p1.y);
k=((p2.x-p1.x)*pow(p3.y,2)+(p1.x-p3.x)*pow(p2.y,2)+(p3.x-p2.x)*pow(p1.y,2)+(p2.x-p1.x)*pow(p3.x,2)+(pow(p1.x,2)-pow(p2.x,2))*p3.x+p1.x*pow(p2.x,2)-pow(p1.x,2)*p2.x)/((2*p2.x-2*p1.x)*p3.y+(2*p1.x-2*p3.x)*p2.y+(2*p3.x-2*p2.x)*p1.y);
r=(sqrt(pow(p2.y,2)-2*p1.y*p2.y+pow(p1.y,2)+pow(p2.x,2)-2*p1.x*p2.x+pow(p1.x,2))*sqrt(pow(p3.y,2)-2*p1.y*p3.y+pow(p1.y,2)+pow(p3.x,2)-2*p1.x*p3.x+pow(p1.x,2))*sqrt(pow(p3.y,2)-2*p2.y*p3.y+pow(p2.y,2)+pow(p3.x,2)-2*p2.x*p3.x+pow(p2.x,2)))/abs((2*p2.x-2*p1.x)*p3.y+(2*p1.x-2*p3.x)*p2.y+(2*p3.x-2*p2.x)*p1.y);
translate([h,k]) circle(r);
}
circle3p(point1, point2, point3);
```