540 likes | 776 Views
Pl ü cker Coordinate of a Line in 3-Space. L. Q. P. O. Motivation. The other way of representing lines in 3-space is parametric equation We are interested in learning the aspects/features of Plucker coordinates that make life easier !. References.
E N D
Plücker Coordinate of a Line in 3-Space Spring 2013
L Q P O Motivation • The other way of representing lines in 3-space is parametric equation • We are interested in learning the aspects/features of Plucker coordinates that make life easier! Spring 2013
References • Plucker coordinate tutorial, K. Shoemake [rtnews] • Plucker coordinates for the rest of us, L. Brits [flipcode] • Plucker line coordinate, J. Erickson [cgafaq] Spring 2013
Introduction • A line in 3-space has four degree-of-freedom (why so?!) • Plucker coordinates are concise and efficient for numerous chores • One special case of Grassmann coordinates • Uniformly manage points, lines, planes and flats in spaces of any dimension. • Can generate, intersect, … with simple equations. Spring 2013
q0 p q Mason’s Version Line in parametric form Define Plucker coordinate of the line (q, q0) Six coordinate 4 DOFs: O • (q, q0): q0, q00: general line • (q, q0): q0, q0=0: line through origin • (q, q0): q=0, (q0=0): [not allowed] Spring 2013
The following are from Shoemake’s note… Spring 2013
Summary 1/3 Spring 2013
Summary 2/3 Spring 2013
Summary 3/3 Spring 2013
Notations • Upper case letter: a 3-vector U = (ux,uy,uz) • Vector U; homogeneous version (U:0) • Point P; homo version (P:1), (P:w) • Cross and dot product: PQ, U.V • Plane equation: ax+by+cz+dw=0 • [a:b:c:d] or [D:d] with D=(a,b,c) • [D:0] origin plane: plane containing origin • Plucker coordinate: {U:V} • Colon “:” proclaims homogeneity Spring 2013
L Q P O L={P-Q:PQ} Determinant Definition … row x … row y … row z … row w Make all possible determinants of pairs of rows P–Q PQ Spring 2013
L Q P O Example P=(2,3,7), Q=(2,1,0). L = {U:V} = {0:2:7:-7:14:-4}. Order does not matter identical Q=(2,3,7), P=(2,1,0). L = {U:V} = {0:-2:-7:7:-14:4} Identical lines: two lines are distinct IFF their Plucker coordinates are linearly independent Spring 2013
U×Q O U P L Q L={U:UQ} Tangent-Normal Definition PQ: {U:V} U = P–Q V = P×Q = (U+Q)×Q = U×Q (U:0) direction of line [V:0] origin plane through L Question: any pair of points P,Q gives the same {U:V}? Yes {p.14} Spring 2013
Example y U=(1,0,-1) Q=(0,0,1) UQ = (0,-1,0) L={1:0:-1:0:-1:0} x y z If we reverse the tangent: U=(-1,0,1) Q=(0,0,1) UQ = (0,1,0) L={-1:0:1:0:1:0} … still get the same line (but different orientation) Spring 2013
L Q U P P’ O Remark P’=Q+kU U’ = P’– Q = kU V’ = P’×Q = (Q+kU) ×Q = kU×Q P’Q {kU:kV} Moving P and/or Q scales U & V together! Similar to homogeneous coordinates Spring 2013
Remarks • Six numbers in Plucker coordinate {U:V} are not independent. • Line in R3 has 4 dof. : six variables, two equations: one from homogeneity; one from U.V = 0 • Geometric interpretation {U:V} • U: line tangent (U0, by definition) • V: the normal of origin plane containing L (V=0 L through origin) • Identical lines: two lines are distinct IFF their Plucker coordinates are linearly independent Ex: {0:-2:-7:7:-14:4} and {0:4:14:-14:28:-8} are the same (but different orientation); {2:1:0:0:0:0} is different Spring 2013
y x z L={P-Q:PQ} L={U:UQ} Exercise P=(0,1,0) Q=(1,0,0) P=(1,0,0) Q=(0,1,0) Q P U=(2,-2,0) Q=(0,1,0) U=(-1,1,0) Q=(0,1,0) U=(1,-1,0) Q=(0,1,0) Spring 2013
L Q U T Vector triple product O Distance to Origin T: closest to origin Any Q on L: Q = T + sU V = U×Q = U×(T+sU) =U×T ||V|| = ||U|| ||T|| sin90 = ||U|| ||T|| T.T = (V.V) / (U.U) V×U=(U×T)×U = (U.U)T T=(V×U:U.U) Squared distance: L={U:V} Closest point: Spring 2013
Example y U=(1,0,-1) Q=(0,0,1) UQ = (0,-1,0) L={1:0:-1:0:-1:0} T=(V×U:U.U) = (1:0:1:2)= (1/2,0,1/2) Squared distance = (V.V)/(U.U) = 1/2 x y z Spring 2013
[E:e] [F:f] L Line as Intersection of Two Planes1 Plane equation: ax + by + cz + d = 0 P = (x,y,z), point on L E.P + e = 0 F.P + f = 0 f(E.P+e) – e(F.P+f) = 0 (fE – eF).P = 0 fE-eF defines the normal of an origin plane through L direction U = EF P L = {EF: fE – eF} Spring 2013
Example y E = [1:0:0:-1] F = [0:0:1:0] L = {EF:fE-eF} = {0:-1:0:0:0:1} Check P = (1,1,0), Q = (1,0,0) L = {P-Q:PQ} = {0:1:0:0:0:-1} P x Q z z = 0 [0:0:1:0] x = 1 [1:0:0:-1] Spring 2013
Line as Intersection of Two Planes2 • If both planes do not pass through origin, e0 and f0, we can normalize both planes to [E:1] and [F:1]. • The intersecting line then becomes {EF:E-F} L Q [E:1] [F:1] {P-Q:PQ} P {EF:E-F} L Duality! O Spring 2013
[V:0] origin plane thru L (V0) [UV:V.V] plane thru L [V:0] (U:0) direction of L T=(VU:U.U) point of L (U:0) L Q U T O Other Duality L={U:V} [UV:V.V] Verify! (next page) O [V:0] P.18 Spring 2013
[UV:V.V] O [V:0] Verify P.23R L={E F:fE-eF} = {(U V) V: -(V.V)V} (U V) V = -U(V.V)+V(U.V) = -U(V.V) L = {-U(V.V):-V(V.V)} = {U:V} L Spring 2013
Triple product [N:0] O L [V:0] Line-Plane Intersection1 Points on {VN:0} = (VN:w) Intersection: the point on [UV:V.V]! • L and plane [N:0] {VN:0} (U V).(V N)+w(V.V) = 0 w(V.V) = (V U).(V N) = N.((V U) V) =N.(-(U.V)V+(V.V)U)=(V.V)(U.N) w = U.N [UV:V.V] {U:V} [N:0] = (VN:U.N) Spring 2013
[N:0] O L [V:0] Line-Plane Intersection2 [N:n] • L and plane [N:n] [N:0] O L [V:0] Derivation pending {U:V} [N:n] = (VN–nU:U.N) Spring 2013
{U:V} [N:n] = (VN–nU:U.N) U=(1,0,-1) Q=(0,0,1) UQ = (0,-1,0) L={1:0:-1:0:-1:0} VN–nU = (-1,0,0) – (-2)(1,0,-1) = (1,0,-2) U.N = (1,0,-1).(-1,0,0) = -1 Intersection at (-1,0,2)! Example y x Intersect with y = 0, [0:1:0:0] (VN:U.N) = (0:0:0:0), overlap Intersect with y = 1, [0:1:0:-1] (VN–nU:U.N) = (1:0:-1:0) Intersect at infinity y z Z = 2 [0:0:1:-2] Spring 2013
Derivation pending Common Plane1 {U:V} and (P:w) [UP-wV:V.P] y U = (0,0,1) V = UQ = (0,0,1) (0,1,0) = (-1,0,0) (P:w) = (1:1:0:1) [UP-wV:V.P] = [0:1:0:-1] x z Spring 2013
Common Plane2 Derivation pending {U:V} and (N:0) [UN:V.N] y U = (0,0,1) V = UQ = (-1,0,0) N = (1,0,0) …(-1,0,0) get the same … (1,0,1) also get the same (N need not ⊥U) [UN:V.N] = [0:1:0:-1] x z Spring 2013
Useful for: Computing transformed Plucker coordinate (p.50) Line-in-plane test [N:0] O L [V:0] Also related: p. 18, 35L Generate Points on Line1 Use {U:V} [N:0] = (VN:U.N) Any N will do, as long as U.N0 {Take non-zero component of U} N N Does not work for line with V=0 (line through origin) U O Spring 2013
Example y As before: L = {U:V} = {0:0:1:-1:0:0} Take N = (0,1,1) {U:V} [N:0] = (VN:U.N) = (0:1:-1:1) x z Spring 2013
Line in Plane Test y • Generate two points on the line • Do point-on-plane test Is L in [1:1:0:0]? No (1,1,0).(0,1,-1) + 0 0 x z Is L in [1:0:0:0]? Yes (1,0,0).(0,1,-1) + 0 = 0 Point-on-Plane Test [N:n] contain (P:w) IFF N.P+nw = 0 Spring 2013
1. Generate two independent planes containing the line. 2. Perform point-on-plane tests twice Point-on-Line Test y N2 N1 U N,N1,N2: three base vectors Choose N according to nonzero component of U N1 and N2 are the other two axes Check point-in-plane with [UN1:V.N1] and [UN2:V.N2] (common plane, p.29) x N z Spring 2013
Example L = {0:0:1:-1:0:0}, P = (0:1:-2:1) N = (0,0,1), N1 = (0,1,0), N2 = (1,0,0) Plane1 [-1:0:0:0] (-1,0,0).(0,1,-2)+0 = 0 Plane2 [0:1:0:-1] (0,1,0).(0,1,-2) - 1 = 0 y P N2 N1 U N x z Spring 2013
Parametric equation of L Weighted sum of (U:0) and T=(VU:U.U) Pnt(t) = (VU+tU:U.U) Parametric form of planes through L Generate two planes as page 33… y x z Duality L = {0:0:1:-1:0:0} Pnt(t) = (0:-1:t:1) Spring 2013
Two Lines Can Be … • Identical • Linearly dependent Plucker coordinate • Coplanar: find common plane • Intersecting: find intersection • Parallel: find distance • Skewed: find distance, closest points Spring 2013
Coplanarity Test(intersect) L1 • Two lines L1 {U1:V1}, L2 {U2:V2} are coplanar if U1.V2+V1.U2 = 0 Same plane! parallel lines (U1U2=0) are (by definition) coplanar L2 L1&U2: [U1U2:V1.U2] L2 &U1: [U2U1:V2.U1] Spring 2013
L1: {U1:V1} L2: {U2:V2} L1 & L2 Coplanar • Intersecting point (non-parallel) • Find the common plane: [U1U2:V1.U2] • ((V1.N)U2-(V2.N)U1-(V1.U2)N:(U1U2).N) • Where N is unit basis vector, independent of U1 and U2, (U1U2).N ≠0) • Parallel (distinct) lines (U1U2 = 0) Common plane: • [(U1.N)V2-(U2.N)V1:(V1V2).N] with N.U10 Spring 2013
Example • L1={1:1:0:0:0:1} • L2={2:2:0:0:0:-4} • Pick N = (1,0,0) • [(U1.N)V2-(U2.N)V1:(V1V2).N] • =[0:0:-6:0] • L1={1:1:0:0:0:1} • L2={0:1:0:0:0:-1} • Pick N = (0,0,1) • ((V1.N)U2-(V2.N)U1-(V1.U2)N:(U1U2).N) • =(1:2:0:1) Spring 2013
L1 & L2 Skewed • Not coplanar IFF skewed • Find distance • Find pair of closet points Spring 2013
Point (x2:y2:z2:1) Line {U:V} Plane [D:d] Point (x1:y1:z1:1) (1) Line {U:V} (2a): parallel (2b): skewed If no intersection, generate a point on line & point-plane distance Plane [D:d] Distance Computation in R3 Spring 2013
(1) Line-Point Distance L P2 D • Generate P1 containing L & p as [D:d] • Generate P2 containing L & D • Compute distance from p to P2 p P1=[D:d] Spring 2013
(2a) Parallel Line Distance D D U Find the common plane [D:d] Find P1 containing L1 and D Find P2 containing L2 and D Find distance between P1 &P2 L2 [D:d] L1 P1 P2 Spring 2013
(2b) Skewed Line Distance L2 U2 P2 U1 Generate P1 containing L1 and U2 Generate P2 containing L2 and U1 Find distance between P1 & P2 P1 L1 How to find the pair of points that are closest? Spring 2013
Application • Ray-polygon and ray-convex volume intersection Spring 2013
Here, the lines are “oriented”!! {orientation defined by U} Relative Position Between 2 Lines Looking from tail of L1 … Spring 2013
Note here the line is “oriented”; L and –L are not the same Example y R L1={1:0:0:0:0:0} P:(1/3,1/3,0) Q:(1/3,1/3,1) L3 L2 L2={-1:1:0:0:0:-1} x L3={0:-1:0:0:0:0} L1 R={0:0:-1:1/3:-1/3:0} = {0:0:-3:1:-1:0} z R vs. L1: (0:0:-3).(0:0:0) + (1:-1:0).(1:0:0) = 1 > 0 R vs. L2: (0:0:-3).(0:0:-1) + (1:-1:0).(-1:1:0) = 1 > 0 R vs. L3: (0:0:-3).(0:0:0) + (1:-1:0).(0:-1:0) = 1 > 0 Spring 2013
Example R y L1={1:0:0:0:0:0} P:(1,1,0) Q:(1,1,1) L3 L2 L2={-1:1:0:0:0:-1} x L3={0:-1:0:0:0:0} L1 R={0:0:-1:1:-1:0} z R vs. L1: (0:0:-1).(0:0:0) + (1:-1:0).(1:0:0) = 1 > 0 R vs. L2: (0:0:-1).(0:0:-1) + (1:-1:0).(-1:1:0) = -1 < 0 R vs. L3: (0:0:-1).(0:0:0) + (1:-1:0).(0:-1:0) = 1 > 0 Spring 2013
Discussion • Plucker coordinate of transformed line • More efficient by computing the Plucker coordinates of the transformed points (p.30) Spring 2013
Index • Line in plane 30,32 • Point in line 33 • Point on plane 32 • Line-line configuration 37-40 • Parallel (distance, common plane) 38 • Intersect (point, common plane) 38 • Skew 44 • Distance (point-line-plane) 41-44 • Winding 45 Constructors, two points 11 tangent-normal 13 two planes 20 Distance (closest pt) to origin 18 Line-plane intersect 25,26 Line-line intersect 38 Common plane line, point 28 line, dir 29 Generate points on line 30, 35L Parametric equation of line 35L Parametric plane of line 35R Spring 2013