Поскольку ваша поверхность неявная, вы можете легко создать функцию, которая представляет пересечение этой неявной поверхности с неявным объемом, таким как сфера, ограничивающий прямоугольник или полупространство.
Давайте дляНапример, у вас есть уравнение сферы:
auto sphere(double x, double, y, double z) {
return x*x + y*y + z*z - 1;
}
, тогда вы можете вычислить пересечение с полупространством, например:
auto half_space(double x, double y, double z) {
return y - x > 0 ? -1. : -1.;
}
auto intersection(double, x, double y, double z) {
if(half_space(x, y, z) > 0) return 1.
else return sphere(x, y, z);
}