Node:Solving Ellipses, Next:, Previous:Ellipse Intersections, Up:Ellipse Reference

### Solving

 real_pair solve (char axis_unknown, real known) `const` function
 Returns two possible values for either the horizontal or vertical coordinate. This function assumes that the `Ellipse` lies in a major plane with `center` at the origin. Code that calls it must ensure that these conditions are fulfilled. `solve()` is called in `Reg_Cl_Plane_Curve::intersection_points(Point, Point, Point)` and `Reg_Cl_Plane_Curve::location()`, and resolves to this function, when these functions are called on an `Ellipse`. However, `Ellipse::location()` overloads `Reg_Cl_Plane_Curve::location()`, so the latter won't normally be called on an `Ellipse`. See Regular Closed Plane Curve Reference; Intersections, and Regular Closed Plane Curve Reference; Querying.

 real_triple get_coefficients (real Slope, real v_intercept) `const` function
 Let x and y stand for the x and y-coordinates of a point on an ellipse in the x-y plane, a for half of the horizontal axis (`axis_h` / 2), and b for half of the vertical axis (`axis_v` / 2). Further, let y = mx + i be the equation of a line in the x-y plane, where m is the slope and i the y-intercept. This function returns the coefficients of the quadratic equation that results from replacing y with mx + i in the equation for the ellipse ``` x^2/a^2 + y^2/b^2 = 1 ``` namely ``` x^2/a^2 + (mx + i)^2/b^2 - 1 = 0 == (b^2x + a^2m^2)x^2 + 2a^2imx + (a^2i^2 - a^2b^2) = 0. ``` The coefficients are returned in the `real_triple` in the order one would expect: `r.first` is the coefficient of x^2, `r.second` of x and `r.third` of the constant term (x^0 == 1). `get_coefficients()` is called in `Reg_Cl_Plane_Curve::intersection_points(Point, Point, Point)`, and resolves to this function, when the latter is called on an `Ellipse`. See Regular Closed Plane Curve Reference; Intersections.