2016-04-18 1 views
0

J'ai un vecteur normal, l'équation d'un plan (ax + by + cz = d)comment calculer quatre points arbitraires d'une équation de plan

Comment pourrais-je calculer quatre points arbitraires pour créer une quadrangulaire? J'ai pensé à utiliser les interceptions x, y et z, mais cette approche ne fonctionnera pas.

Je pense que je vais devoir utiliser un système d'équations dans numpy http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.linalg.solve.html

ce schéma après une approche en C++ mais je ne suis pas sûr si cela fonctionnerait How do I get three non-colinear points on a plane? - C++

+0

il will travail: 3 points non colinéaires formeront une base 2D complète dans le plan, et tout point sur le plan est représentable comme une combinaison linéaire des deux vecteurs de base –

+0

mauvais outil en python, toute idée comment je pourrais obtenir ce quatrième point. Je préférerais éviter d'utiliser les interceptions de plan x, y, z – webmaker

+0

comme je l'ai dit, vous pouvez obtenir le point _any_ sur le plan en utilisant une combinaison linéaire des deux vecteurs que vous obtenez à partir de la méthode 3 points que vous vous posez sur –

Répondre

0

C'est ce que je faire:

  1. Résoudre le système homogène ax + by + cz = 0. La solution donnera à vos deux solutions linéairement indépendantes A = (x0, y0, z0) et B = (x1, y1, z1).

  2. Trouver une solution particulière (en supposant ici que d != 0). Pour ce faire, sélectionnez un coefficient a, b ou c, ce qui est différent de 0. Par exemple, si a != 0 une solution particulière est P = (d/a, 0, 0).

  3. sélectionner 4 points dans le plan homogène, par exemple, 0, A, B et A + B, et la somme de leur solution particulière P

    A + P, B + P, A + B + P, P

+0

Il serait bon de connaître la raison de la downvote ... –

+0

ce n'était pas moi, je viens de voir votre message Merci pour votre réponse. Je considère également la réplication de la méthode de point arbitraire sympy. http://docs.sympy.org/latest/modules/geometry/plane.html – webmaker

+0

Merci @webmaker. Faites-moi savoir s'il y a quelque chose que je devrais clarifier. –