**HP Prime and TI-84 Plus CE: Circle Determined by Three Points**

The programs
CIRC3PTS (HP Prime) and CIRCBY3 (TI-84 Plus CE) calculate the center and radius
of a circle given three points (x1, y1), (x2, y2), and (x3, y3). The HP Prime will display the equation
(x-x0)^2 + (y-y0)^2 = r^2 in a message box.
Both versions will return a list {x0, y0, r}.

The center
point (x0, y0) is calculated by:

[ [ x0 ] [ y0 ]
] =

[ [ x1 – x3, y1
– y3 ] [ x1 – x2, y1 – y2 ] ]^-1 * [ [ a ] [ b ] ]

Where:

a = 0.5 * ( (x1
– x3)*(x1 + x3) + (y1 – y3)*(y1 + y3) )

b = 0.5 * ( (x1
– x2)*(x1 + x2) + (y1 – y2)*(y1 + y2) )

r = √( (x1 – x0)^2
+ (y1 – y0)^2 )

**HP Prime Program: CIRC3PTS**

EXPORT CIRC3PTS()

BEGIN

// 2016-10-09

// Circle by 3 Points

LOCAL x1,y1,x2,y2;

LOCAL x3,y3,x0,y0;

LOCAL a,b,m,r;

LOCAL str;

// Input box

INPUT({x1,y1,x2,y2,x3,y3},

"Circle by 3 Points",

{"x1","y1","x2","y2",

"x3","y3"});

// Calculation

a:=0.5*((x1-x3)*(x1+x3)+

(y1-y3)*(y1+y3));

b:=0.5*((x1-x2)*(x1+x2)+

(y1-y2)*(y1+y2));

m:=[[x1-x3,y1-y3],[x1-x2,y1-y2]]^-1

*[[a],[b]];

x0:=m(1,1); y0:=m(2,1);

r:=(x1-x0)^2+(y1-y0)^2;

// build string

str:="(x-"+x0+")^2+(y-"+y0+

")^2="+r;

MSGBOX(str);

RETURN {x0,y0,√r};

END;

**TI-84 Plus Program: CIRCBY3**

Disp "CIRCLE BY
3 PTS."

Input
"X1:",D

Input
"Y1:",E

Input
"X2:",F

Input
"Y2:",G

Input
"X3:",H

Input
"Y3:",I

0.5*((D-H)*(D+H)+(E-I)*(E+I))→A

0.5*((D-F)*(D+F)+(E-G)*(E+G))→B

[[D-H,E-I][D-F,E-G]]^-1*[[A][B]]→[A]

[A](1,1)→X

[A](2,1)→Y

√((D-X)²+(E-Y)²)→R

Disp
"{X0,Y0,R}:"

Pause {X,Y,R}

**Test Example:**

(x1, y1): (2, 4)

(x2, y2): (0, 2)

(x3, y3): (-1, 3)

Result:

x0 = 0.5

y0 = 3.5

r = 1.58113883008

(x – 0.5)^2 +
(y – 3.5)^2 = 2.5

Source:

“Circle
Determined by Three Applications” HP-34C Mathematics Applications. Hewlett Packard, 1979

This blog is
property of Edward Shore, 2016.