Intersection area polygon 3D

5 vues (au cours des 30 derniers jours)
Leandro Bem
Leandro Bem le 30 Mar 2021
Modifié(e) : Matt J le 31 Mar 2021
Hi!
I need to calculate the area of intersection of two polygons (rectangles) given by their 3D vertices (x, y, z).
- Polygon 1 has the vertices A (x1, y1, z1), B (x2, y2, z2), C (x3, y3, z3) and D (x4, y4, z4);
- Polygon 2 has the vertices P (x5, y5, z5), Q (x6, y6, z6), R (x7, y7, z7) and S (x8, y8, z8).
Is there a function that solves my problem?
Can someone help me?
  7 commentaires
Matt J
Matt J le 31 Mar 2021
Modifié(e) : Matt J le 31 Mar 2021
Well, I think we need more elaboration on the projection process considered here. I don't see what kind of projection could be area preserving, unless Panel 1 is in fact rotated into the plane of Panel 2, but if that's the case, how is the axis of rotation chosen?
Adam Danz
Adam Danz le 31 Mar 2021
> I know all the coordinates (x, y, z) of the 4 vertices of Panel 1, Panel 2 and the Shadow.
So, you know the coordinates of the shadow and the shadow is on the same plane as one of the surfaces, is that correct? Isn't that a simple 2D problem of computing the overlap? What am I missing?

Connectez-vous pour commenter.

Réponses (1)

Matt J
Matt J le 30 Mar 2021
Modifié(e) : Matt J le 31 Mar 2021
b1=(Q-P)/norm(Q-P);
b2=(S-P)/norm(S-P);
pgon1=polyshape( ([A;B;C;D]-P)*[b1;b2].' )
pgon2=polyshape( ([P;Q;R;S]-P)*[b1,b2].' );
Area = area(intersect(pgon1,pgon2))
  2 commentaires
Leandro Bem
Leandro Bem le 31 Mar 2021
Thanks for your help, but with this suggestion I am not getting the correct answer.
Matt J
Matt J le 31 Mar 2021
Modifié(e) : Matt J le 31 Mar 2021
I know all the coordinates (x, y, z) of the 4 vertices of Panel 1, Panel 2 and the Shadow.
If you replace ABCD with the coordinates of the shadow vertices, it should work.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by