Рассмотрим ещё один способ задания куба - пересечение шести плоскостей, каждая из которых описывается уравнением вида:
Следует отметить, что самый естественный для школьной геометрии способ задания куба - перечисление координат вершин, можно считать частным случаем обсуждаемого метода, так как по точкам вершин можно с лёгкостью составить уравнения плоскостей, а направление нормалей устанавливать согласно правилу правой руки.
Для каждой плоскости вычислим значение параметра
Такую проверку можно выполнять различными способами. Например, мы можем выполнять непосредственную подстановку координат полученной точки в уравнение плоскости. Также можно для каждой плоскости получать вектор нормали, проходящий через эту точку, а затем вычислять скалярное произведение исходной нормали и вычисленной и по его знаку определять принадлежность точки полупространству.
В обоих случаях для каждого решения придётся выполнить 6 (в случае оптимизации 4) проверок. Однако, можно обойтись и меньшим числом, если сохранять для куба его центр и половину длины стороны.
Когда мы получаем какое-то корректное значение параметра
Следует отметить, что для ускорения работы программы можно отдельно хранить и центры граней, вычислив их один раз при создании объекта.
Зададим вектор
Приняв за