2016-04-18 2 views
0

У меня есть нормальный вектор, уравнение плоскости (ах + Ьу + сг = г)как вычислить четыре произвольные точки из уравнения плоскости

Как я мог вычислить четыре произвольные точки, чтобы создать четырехугольник? Я думал об использовании перехватов x, y и z, но этот подход не сработает.

Я имею в виду, я должен использовать систему уравнений в NumPy http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.linalg.solve.html

этот пост очертить подход в C++, но я не уверен, что если он будет работать How do I get three non-colinear points on a plane? - C++

+0

это _will_ работа: 3 не-коллинеарная точка будет образовывать полный 2D базис в плоскости, и любая точка на плоскости представляется в виде линейной комбинации два базисных векторов –

+0

больно реализовать в Python, любое идея, как я мог бы получить этот четвертый пункт. я бы предпочел не использовать перехваты плоскости x, y, z – webmaker

+0

, так как я сказал, что вы можете получить _any_ точку на плоскости, используя линейную комбинацию двух векторов, которые вы получаете от метода с тремя точками, о котором вы задавались вопросом –

ответ

0

Это то, что я бы do:

  1. Решите однородную систему ax + by + cz = 0. Решение предоставит вам два линейно независимых решения A = (x0, y0, z0) и B = (x1, y1, z1).

  2. Найти конкретное решение (допущение здесь, что d != 0). Для этого выберите коэффициент a, b или c, который отличается от 0. Например, если a != 0 конкретным решением является P = (d/a, 0, 0).

  3. Выберите 4 точки в однородной плоскости, например, 0, A, B и A + B, а сумма их частное решение P

    А + Р, В + Р, А + В + Р, Р

+0

Было бы хорошо знать причину нисходящего ... –

+0

Это был не я, я только что увидел Ваше сообщение. Спасибо за ответ. Я также рассматриваю возможность тиражирования произвольного точечного метода sympy. http://docs.sympy.org/latest/modules/geometry/plane.html – webmaker

+0

Спасибо @webmaker. Просто дайте мне знать, если что-то я должен уточнить лучше. –

Смежные вопросы