Определить положение двух точек относительно 3D-плоскости
Даны четыре целых числа a , b , c и d , представляющие собой коэффициент уравнения плоскости ax + by + cz + d = 0 , и две целые координаты (x1, y1, z1) и (x2, y2, z2) , задача состоит в том, чтобы найти, лежат ли обе точки на одной стороне, или на разных сторонах, или на поверхности плоскости.
Примеры:
Input: a = 1, b = 2, c = 3, d = 4, x1 = -2, y1 = -2, z1 = 1, x2 = -4, y2 = 11, z2 = -1
Output: On same side
Explanation: On applying (x1, y1, z1) and (x2, y2, z2) on ax+by+cz+d=0 gives 1 and 19 respectively, both of which have the same sign, hence both the point lies on the same side of the plane.Input: a = 4, b = 2, c = 1, d = 3, x1 = -2, y1 = -2, z1 = 1, x2 = -4, y2 = 11, z2 = -1
Output: On different sides
Подход: Идея основана на том, что если две точки, примененные к уравнению, имеют одинаковую четность (знак), то они будут лежать по одну сторону плоскости, а если они имеют разную четность, то они будут лежать на одной стороне плоскости. разные стороны самолета. Выполните следующие шаги, чтобы решить проблему:
- Поместите координаты заданных точек в уравнение плоскости и сохраните значения в переменных P1 и P2 .
- Проверяем знак полученных значений:
- Если P1 и P2 имеют одинаковую четность, то они находятся на одной стороне плоскости.
- Если P1 и P2 имеют разную четность, то они лежат на противоположных сторонах плоскости.
- Если P1 и P2 равны нулю, то они лежат на плоскости.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(1)
Вспомогательное пространство: O(1)