Point3 org = ray.origin();
Vector3 dir = ray.direction();
double x0 = org.x() / radius;
double y0 = org.y() / height - 1.0;
double z0 = org.z() / radius;
double x1 = dir.x() / radius;
double y1 = dir.y() / height;
double z1 = dir.z() / radius;
Polynomial f = new Polynomial(