How to find the orientation of the line of the intersection between two planes?

10 visualizzazioni (ultimi 30 giorni)
Is there any method/indiacator that i can use to know the orientation of the the intersection line between two planes( using Dual Plucker Matrix )?
I used the follwoing code get the line:
P1 =[177668442.453315 ,-102576923.076923, 0];
P2 =[ -102576923.076923 ,177668442.453315 ,-102576923.076923];
P3= [0, -102576923.076923, 88834221.2266576];
P11= [152763459.308716 , -102576923.076923, 0];
P22=[ -102576923.076923, 183536536.231793 , -102576923.076923];
P33= [0, -102576923.076923, 91768268.1158967];
A=null([[P1;P2;P3],ones(3,1)]); %plane 1
B=null([[P11;P22;P33],ones(3,1)]); %plane 2
L=A*B.' - B*A.' %line of intersection
L = 4×4
0 -0.0351 -0.0484 0.0000 0.0351 0 -0.0138 0.0000 0.0484 0.0138 0 0.0000 -0.0000 -0.0000 -0.0000 0

Risposta accettata

Matt J
Matt J il 5 Feb 2023
Modificato: Matt J il 5 Feb 2023
P1 =[177668442.453315 ,-102576923.076923, 0];
P2 =[ -102576923.076923 ,177668442.453315 ,-102576923.076923];
P3= [0, -102576923.076923, 88834221.2266576];
P11= [152763459.308716 , -102576923.076923, 0];
P22=[ -102576923.076923, 183536536.231793 , -102576923.076923];
P33= [0, -102576923.076923, 91768268.1158967];
A=null([[P1;P2;P3],ones(3,1)]); %plane 1
B=null([[P11;P22;P33],ones(3,1)]); %plane 2
L=A*B.' - B*A.' %line of intersection;
L = 4×4
0 -0.0351 -0.0484 0.0000 0.0351 0 -0.0138 0.0000 0.0484 0.0138 0 0.0000 -0.0000 -0.0000 -0.0000 0
N=null(L);
a=N(:,1)+N(:,2);
b=N(:,1)+2*N(:,2);
direction=normalize( b(1:3)/b(4)-a(1:3)/a(4) ,'n')
direction = 3×1
0.2242 -0.7894 0.5715
or,
direction=normalize( cross(A(1:3),B(1:3)) ,'n')
direction = 3×1
-0.2242 0.7894 -0.5715
  6 Commenti
M
M il 5 Feb 2023
Modificato: M il 5 Feb 2023
@Matt J I have a question please if we have more than 3 dimensions, 4d 5d..
Would this method works?
because I tried 4d problem and 'N' size is 5*3
a=N(:,1)+N(:,2);
b=N(:,1)+2*N(:,2);
direction=normalize( b(1:3)/b(4)-a(1:3)/a(4) ,'n')
Also I want to ask why did you multiply by 2 here "b=N(:,1)+2*N(:,2);" ?
and what does a and b denote?

Accedi per commentare.

Più risposte (1)

Torsten
Torsten il 5 Feb 2023
Modificato: Torsten il 5 Feb 2023
If you look at the next lines in Matt's code, he creates 100 points on the line.
Thus in the modified code below, Pstart could be taken as a point on the line and d as a direction vector for the line emanating from Pstart.
Did you mean something like this ?
P1 =[177668442.453315 ,-102576923.076923, 0];
P2 =[ -102576923.076923 ,177668442.453315 ,-102576923.076923];
P3= [0, -102576923.076923, 88834221.2266576];
P11= [152763459.308716 , -102576923.076923, 0];
P22=[ -102576923.076923, 183536536.231793 , -102576923.076923];
P33= [0, -102576923.076923, 91768268.1158967];
A=null([[P1;P2;P3],ones(3,1)]); %plane 1
B=null([[P11;P22;P33],ones(3,1)]); %plane 2
L=A*B.' - B*A.'; %line of intersection
N=null(L);
t=linspace(-.1,.1);
xyz=N(:,1) + N(:,2)*t;
xyz = xyz(1:3,:)./xyz(4,:);
P1 = xyz(:,1);
P2 = xyz(:,2);
Pstart = P1
Pstart = 3×1
2.2415 -7.8929 5.7147
d = (P2-P1)/norm(P2-P1)
d = 3×1
0.2242 -0.7894 0.5715
  13 Commenti
M
M il 5 Feb 2023
@Torsten could you please suggest the methods that we can get the intersected plane (2d object in 4d) ?
Torsten
Torsten il 6 Feb 2023
Modificato: Torsten il 6 Feb 2023
The usual representation of the plane of intersection is given by all solutions x of a linear system of the form
A*x = b
Here, A is a 2x4 matrix and b is a 2x1 vector.
The rows of A are the normal vectors of 2 hyperplanes in the 4d space.
The vector b somehow represents the distance of these hyperplances to the origin.

Accedi per commentare.

Categorie

Scopri di più su Behavior and Psychophysics in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by