Comment puis-je tracer une 3D-plan dans Matlab?
Je voudrais tracer un plan à l'aide d'un vecteur, que j'ai calculé, à partir de 3 points où:
pointA = [0,0,0];
pointB = [-10,-20,10];
pointC = [10,20,10];
plane1 = cross(pointA-pointB, pointA-pointC)
Comment puis-je tracer 'plane1' en 3D?
je crois qu'il y a SE site pour matlab.
nope, mon erreur -> area51.stackexchange.com/proposals/38040/matlab
Vous aurez probablement besoin de générer un tas de points qui sont dans l'avion, puis de la parcelle à l'aide de ces
cela peut vous aider: stackoverflow.com/questions/3461869/...
nope, mon erreur -> area51.stackexchange.com/proposals/38040/matlab
Vous aurez probablement besoin de générer un tas de points qui sont dans l'avion, puis de la parcelle à l'aide de ces
surf
ou d'une même fonction...cela peut vous aider: stackoverflow.com/questions/3461869/...
OriginalL'auteur user1834916 | 2012-11-19
Vous devez vous connecter pour publier un commentaire.
Voici une façon facile de tracer le plan à l'aide de
fill3
:fill3
prendreX,Y,Z
en entrée et pas de 3 points. Jetez un oeil à l'avion que vous avez dessiné, il ne passe pas à travers(0,0,0)
. Vous avez dessiné un avion qui passe à travers(0,-10,10)
,(0, -20,20)
et(0,10,10)
Selon Matlab documentation (2e ligne pour fill3) "fill3(X,Y,Z,C) remplit trois dimensions des polygones. X, Y et Z des triplets de spécifier le polygone de sommets". Je n'ai fait une erreur mais dans la façon dont je saisie les points de
fill3
(le faux), et c'est maintenant corrigé. merci pour remarquer. Je pense toujours que l'un liner est plus agréable que de plusieurs lignes...C'est ok, tu as mon upvote de toute façon, je voulais juste vous pour corriger l'erreur 🙂
OriginalL'auteur bla
Vous avez déjà calculé le vecteur normal. Maintenant, vous devez décider quelles sont les limites de votre avion à l'
x
etz
et de créer un patch rectangulaire.Une explication : Chaque avion peut être caractérisée par son vecteur normal
(A,B,C)
et un autre coefficientD
. L'équation du plan estAX+BY+CZ+D=0
. Produit vectoriel entre deux différences entre les points,cross(P3-P1,P2-P1)
permet de trouver(A,B,C)
. Afin de trouverD
, il suffit de mettre n'importe quel point dans l'équation mentionnée ci-dessus:Une fois que vous avez l'équation de l'avion, vous pouvez prendre les 4 points qui se situent sur ce plan, et de dessiner le patch entre eux.
vrai, il devrait avoir d'autres cas pour des zéros ou à proximité de zéros coefficients.
Voir ma réponse pour une autre solution
OriginalL'auteur Andrey Rubshtein
Voici ce que je suis venu avec:
Qui vous permettrait d'utiliser comme:
Qui trace un carré de côté a une longueur de 60 sur l'avion en question
OriginalL'auteur Eric
Je veux ajouter à la réponse donnée par Andrey Rubshtein, son code fonctionne parfaitement bien, sauf à B=0. Ici est la version éditée de son code
Code ci-Dessous fonctionne quand l'Un n'est pas 0
Code ci-Dessous fonctionne quand C est pas 0
OriginalL'auteur krishna chaitanya