* For the ellipsoid equation 
$$\frac{(x-\text{p1})^2}{\text{a1}^2}+\frac{(y-\text{p2})^2}{\text{a2}^2}+\frac{(z-\text{p3})^2}{\text{a3}^2}=1$$
and a point (pole ) `{o1,o2,o3}`, it's polar plane just has the form 

$$\frac{(\text{o1}-\text{p1}) (x-\text{p1})}{\text{a1}^2}+\frac{(\text{o2}-\text{p2})
   (y-\text{p2})}{\text{a2}^2}+\frac{(\text{o3}-\text{p3}) (z-\text{p3})}{\text{a3}^2}=1$$

The main reasion is that the the normal vector of the tangent plane of such ellipsoid is

```
Clear["Global`*"];
f[x_, y_,z_] := (x - p1)^2/a1^2 + (y - p2)^2/a2^2 + (z - p3)^2/a3^2 - 1;
Grad[f[x, y, z], {x, y, z}]
```
$$\left\{\frac{2 (x-\text{p1})}{\text{a1}^2},\frac{2 (y-\text{p2})}{\text{a2}^2},\frac{2
   (z-\text{p3})}{\text{a3}^2}\right\}$$

and the direction of the tangent lines is orthogonal to such normal vector.

```
Clear["Global`*"];
center = {p1, p2, p3} = {0.2, .4, .8};
axes = {a1, a2, a3} = {.8, .4, .5};
pole = {o1, o2, o3} = {0, 0, 0};
f[x_, y_, 
   z_] := (x - p1)^2/a1^2 + (y - p2)^2/a2^2 + (z - p3)^2/a3^2 - 1;
polar[x_, y_, 
   z_] := ((x - p1)  (o1 - p1))/a1^2 + ((y - p2)  (o2 - p2))/
    a2^2 + ((z - p3)  (o3 - p3))/a3^2 - 1;
ellipsoid = 
  ContourPlot3D[
   f[x, y, z] == 0 // Evaluate, {x, p1 - a1, p1 + a1}, {y, p2 - a2, 
    p2 + a2}, {z, p3 - a3, p3 + a3}, 
   MeshFunctions -> Function[{x, y, z}, polar[x, y, z]], 
   Mesh -> {{0}}, 
   MeshShading -> {Directive@{Opacity[.5], Green}, 
     Directive@{Opacity[.5], Blue}}, 
   MeshStyle -> Directive@{Thick, Yellow}, BoxRatios -> Automatic, 
   Boxed -> False, Axes -> False];
polarplane = 
  ContourPlot3D[
   polar[x, y, z] == 0 // Evaluate, {x, p1 - a1, p1 + a1}, {y, 
    p2 - a2, p2 + a2}, {z, p3 - a3, p3 + a3}, Mesh -> None];
point = Graphics3D[{Red, AbsolutePointSize[5], Point@{o1, o2, o3}}];
pts = MeshPrimitives[
    DiscretizeRegion[
     ImplicitRegion[{f[x, y, z] == 0, polar[x, y, z] == 0}, {x, y, 
       z}]], 1][[;; , 1]][[;; , 1]]; index = 
 FindShortestTour@pts // Last;
cone = Graphics3D[{EdgeForm[], FaceForm[Yellow], Opacity[.8], 
    Polygon /@ (Join[{{o1, o2, o3}}, #] & /@ 
       Partition[pts[[index]], 2, 1])}];
Show[ellipsoid, polarplane, point, cone, PlotRange -> All]
```

[![enter image description here][1]][1]

and the areas of the two parts (blue and green) are

```
area1 = ImplicitRegion[{f[x, y, z] == 0, polar[x, y, z] >= 0}, {x, y, 
     z}] // Area;
area2 = ImplicitRegion[{f[x, y, z] == 0, polar[x, y, z] <= 0}, {x, y, 
     z}] // Area;
{area1, area2}
```

> `{0.970791, 2.96791}`

* Such method also work for the 2D cases. In the 2D cases is just the polar of the quadratic curves.

```
Clear["Global`*"];
center = {p1, p2} = {0.2, .4};
axes = {a1, a2} = {.8, .4};
pole = {o1, o2} = {-1, -.5};
f[x_, y_] := (x - p1)^2/a1^2 + (y - p2)^2/a2^2 - 1;
polar[x_, 
   y_] := ((x - p1)   (o1 - p1))/a1^2 + ((y - p2)   (o2 - p2))/a2^2 - 
   1;
ellipsoid = 
  ContourPlot[
   f[x, y] == 0 // Evaluate, {x, p1 - a1, p1 + a1}, {y, p2 - a2, 
    p2 + a2}, MeshFunctions -> Function[{x, y}, polar[x, y]], 
   Mesh -> {{0}}, AspectRatio -> Automatic, Axes -> False];
polarline = 
  ContourPlot[
   polar[x, y] == 0 // Evaluate, {x, p1 - a1, p1 + a1}, {y, p2 - a2, 
    p2 + a2}, Mesh -> None];
pts = {x, y} /. NSolve[{f[x, y] == 0, polar[x, y] == 0}, {x, y}];
g = Graphics[{Red, AbsolutePointSize[5], Point@{o1, o2}, 
    HalfLine[{{o1, o2}, pts[[1]]}], HalfLine[{{o1, o2}, pts[[2]]}]}];
Show[ellipsoid, polarline, g, PlotRange -> All]
length1 = 
  ImplicitRegion[{f[x, y] == 0, polar[x, y] >= 0}, {x, y}] // 
   ArcLength;
length2 = 
  ImplicitRegion[{f[x, y] == 0, polar[x, y] <= 0}, {x, y}] // 
   ArcLength;
{length1, length2}
```
[![enter image description here][2]][2]

> `{1.51619, 2.35919}`


  [1]: https://i.sstatic.net/51dj1Q3H.png
  [2]: https://i.sstatic.net/DduQgLS4.png