randRange(-5, 5) randRange(-5, 5) randRange(1, 5) H === 0 ? "x^2" : expr(["^", ["+", "x", -H], 2]) K === 0 ? "y^2" : expr(["^", ["+", "y", -K], 2]) -2 * H -2 * K H * H + K * K - R * R

Graph the circle expr(["+", "x^2", "y^2", D === 0 ? null : ["*", D, "x"], E === 0 ? null : ["*", E, "y"], F === 0 ? null : F]) = 0.

graphInit({ range: 11, scale: 20, axisArrows: "<->", tickStep: 1, labelStep: 1, gridOpacity: 0.05, axisOpacity: 0.2, tickOpacity: 0.4, labelOpacity: 0.5 }); label( [ 0, 11 ], "y", "above" ); label( [ 11, 0 ], "x", "right" ); addMouseLayer(); graph.circle = addCircleGraph();
Drag the center point and perimeter of the circle to graph the equation.
[ graph.circle.center, graph.circle.center, graph.circle.radius]
if (_.isEqual(guess, [0, 0, 2])) { return ""; } return _.isEqual(guess, [H, K, R]);
graph.circle.setCenter(guess, guess); graph.circle.setRadius(guess);

First, convert the equation to standard form by completing the square.

Group the \blue{x} and \green{y} terms on the left side and move the constant term to the right side.

\qquad \blue{ (expr(["+", "x^2", ["*", D, "x"]])) (x^2) } + \green{ (expr(["+", "y^2", ["*", E, "y"]])) (y^2) } \quad = \quad -F 

Add \blue{H * H} to both sides to complete the square for the \blue{x} term and \green{K * K} to both sides to complete the square for the \green{y} term.

\qquad \blue{ ( expr(["+", "x^2", ["*", D, "x"], H * H]) ) (x^2) } + \green{ ( expr(["+", "y^2", ["*", E, "y"], K * K]) ) (y^2) } \quad = \quad -F + \blue{H * H} + \green{K * K} 

Simplify and write each term as a square:

\qquad \blue{X2T} + \green{Y2T} \quad = \quad R * R 

\qquad (x - \blue{negParens(H)})^2 + (y - \green{negParens(K)})^2 \quad = \quad \pink{R}^2 

The equation of a circle with center (\blue{h}, \green{k}) and radius \pink{r} is (x - \blue{h})^2 + (y - \green{k})^2 = \pink{r}^2.

Thus, the center of the circle should be (\blue{H}, \green{K})  and the radius should be \pink{R}.

circle([H, K], R, { stroke: PURPLE, strokeWidth: 1, strokeDasharray: "- " }).toBack();