Upload
bartholomew-randall
View
219
Download
0
Embed Size (px)
Citation preview
1
Plücker Coordinate of a Line in 3-Space
Spring 2013
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!
2
Q
P
L
O
RttQPt ,1
Spring 2013
3
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
4
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
5
Mason’s Version
tqptx )(
qpq 0
Line in parametric form
Define
Plucker coordinate of the line (q, q0)
Six coordinate 4 DOFs:
]by [scale ,,
0
00
0
kqqqkqq
p q
q0
•(q, q0): q0, q00: general line
•(q, q0): q0, q0=0: line through origin
•(q, q0): q=0, (q0=0): [not allowed]
O
Spring 2013
6
The following are from Shoemake’s note…
Spring 2013
7
Summary 1/3
Spring 2013
8
Summary 2/3
Spring 2013
9
Summary 3/3
Spring 2013
10
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
11
Determinant DefinitionQ
P
L
O
1z
y
x
p
p
p
1z
y
x
q
q
q … row x
… row y
… row z
… row w
Make all possible determinants of pairs of rows
11xx qp
11yy qp
11zz qp
yy
xx
qp
qp
zz
yy
qp
qp
xx
zz
qp
qp
P–Q PQ
L={P-Q:PQ}L={P-Q:PQ}
Spring 2013
12
ExampleQ
P
L
O
P=(2,3,7), Q=(2,1,0). L = {U:V} = {0:2:7:-7:14:-4}.
Order does not matter
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
identical
Spring 2013
13
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}
L={U:UQ}L={U:UQ}
PQ
U
L
O
U×Q
Spring 2013
14
Example
x
y
z y
U=(1,0,-1)Q=(0,0,1)UQ = (0,-1,0)L={1:0:-1:0:-1:0}
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
15
Remark
P’=Q+kU
U’ = P’– Q = kUV’ = P’×Q = (Q+kU) ×Q = kU×Q
P’Q {kU:kV}
Q
P
P’
U
L
O
Moving P and/or Q scales U & V together!Similar to homogeneous coordinates
Moving P and/or Q scales U & V together!Similar to homogeneous coordinates
Spring 2013
16
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 differentSpring 2013
17
Exercise
x
y
zP
Q P=(1,0,0)Q=(0,1,0)
P=(0,1,0)Q=(1,0,0)
L={P-Q:PQ}L={U:UQ}
L={P-Q:PQ}L={U:UQ}
U=(1,-1,0)Q=(0,1,0)
U=(2,-2,0)Q=(0,1,0)
U=(-1,1,0)Q=(0,1,0)
Spring 2013
18
Distance to OriginT: 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)
Q
T
U
L
O Squared distance:
Closest point:
Vector triple product
L={U:V}
Spring 2013
19
Example
x
y
z 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
Spring 2013
20
Line as Intersection of Two Planes1
L
[E:e] [F:f]
P
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 = 0fE-eF defines the normal of an origin plane through Ldirection U = EF
L = {EF: fE – eF}
Spring 2013
21
Example
x
z
y
z = 0[0:0:1:0]
x = 1[1:0:0:-1]
E = [1:0:0:-1]F = [0:0:1:0]L = {EF:fE-eF} = {0:-1:0:0:0:1}
CheckP = (1,1,0), Q = (1,0,0)L = {P-Q:PQ} = {0:1:0:0:0:-1}
Q
P
Spring 2013
22
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
[E:1] [F:1]Q
P
L
O
{P-Q:PQ}
{EF:E-F}
Duality!Spring 2013
• [V:0] origin plane thru L (V0)
• [UV:V.V] plane thru L [V:0]
23
Other Duality
• (U:0) direction of L• T=(VU:U.U) point
of L (U:0)
Q
T
U
L
O
O[V:0]
[UV:V.V]
Verify!(next page)P.18
L={U:V}
Spring 2013
24
Verify P.23R
O[V:0]
[UV:V.V]
L
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}
Spring 2013
25
Line-Plane Intersection1
• L and plane [N:0] Points on {VN:0} = (VN:w)Intersection: the point on [UV:V.V]!
O
[V:0]
[N:0]
L{U:V} [N:0] = (VN:U.N)
[UV:V.V]
{VN:0}
(U V).(V N)+w(V.V) = 0w(V.V) = (V U).(V N) = N.((V U) V)=N.(-(U.V)V+(V.V)U)=(V.V)(U.N)w = U.N
Triple product
Spring 2013
26
Line-Plane Intersection2
• L and plane [N:n]
O
[V:0]
[N:0]
L
{U:V} [N:n] = (VN–nU:U.N)
O
[V:0]
[N:0]
L
Derivation pending
[N:n]
Spring 2013
27
Example
x
y
z y
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) = -1Intersection at (-1,0,2)!
Z = 2[0:0:1:-2]
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
{U:V} [N:n] = (VN–nU:U.N)
Spring 2013
28
Common Plane1
{U:V} and (P:w) [UP-wV:V.P]
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]
Derivation pending
x
y
z
Spring 2013
29
Common Plane2
{U:V} and (N:0) [UN:V.N]
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]
Derivation pending
x
y
z
Spring 2013
30
Generate Points on Line1
Useful for:
• Computing transformed Plucker coordinate (p.50)
• Line-in-plane testO
[V:0]
[N:0]
LUse {U:V} [N:0] = (VN:U.N)
U
NAny N will do, as long as U.N0{Take non-zero component of U}N
O
Also related: p. 18, 35L
Does not work for line with V=0(line through origin)Spring 2013
31
Example
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
y
z
Spring 2013
32
Line in Plane Test
Point-on-Plane Test [N:n] contain (P:w) IFF N.P+nw = 0
Is L in [1:1:0:0]? No
(1,1,0).(0,1,-1) + 0 0
Is L in [1:0:0:0]? Yes
(1,0,0).(0,1,-1) + 0 = 0
x
y
z
1. Generate two points on the line 2. Do point-on-plane test
Spring 2013
33
Point-on-Line Test
x
y
z
N
N1
N2
N,N1,N2: three base vectorsChoose N according to nonzero component of UN1 and N2 are the other two axes
Check point-in-plane with [UN1:V.N1] and [UN2:V.N2](common plane, p.29)
U
1. Generate two independent planes
containing the line.
2. Perform point-on-plane tests twice
Spring 2013
34
Example
x
y
z
N
N1
N2
U
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 = 0Plane2 [0:1:0:-1] (0,1,0).(0,1,-2) - 1 = 0
P
Spring 2013
• Parametric equation of L• Weighted sum of (U:0)
and T=(VU:U.U)
Pnt(t) = (VU+tU:U.U)
35
Duality
• Parametric form of planes through L– Generate two planes as
page 33…
L = {0:0:1:-1:0:0}Pnt(t) = (0:-1:t:1)
x
y
z Spring 2013
36
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)
• Two lines L1 {U1:V1}, L2 {U2:V2} are coplanar if
U1.V2+V1.U2 = 0
37
L1&U2: [U1U2:V1.U2]
L2 &U1: [U2U1:V2.U1]
Same plane!
L1
L2parallel lines
(U1U2=0) are (by definition) coplanar
Spring 2013
38
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
L1: {U1:V1}L2: {U2:V2}
Spring 2013
Example
39
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)
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]
Spring 2013
40
L1 & L2 Skewed
• Not coplanar IFF skewed
• Find distance
• Find pair of closet points
Spring 2013
41
Distance Computation in R3
221
221
221 zzyyxx 222
111
cba
dczbyax
222
21
cba
dd
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]
Spring 2013
42
(1) Line-Point Distance
L
p
D
1. Generate 1 containing L & p as [D:d]2. Generate 2 containing L & D3. Compute distance from p to 2
1=[D:d]
2
Spring 2013
43
(2a) Parallel Line Distance
[D:d]
D U
1 2
L1 L2Find the common plane [D:d] Find 1 containing L1 and DFind 2 containing L2 and DFind distance between 1 & 2
D
Spring 2013
44
(2b) Skewed Line Distance
1
2
L1
L2
U1
U2
Generate 1 containing L1 and U2
Generate 2 containing L2 and U1
Find distance between 1 & 2
How to find the pair of points that are
closest?Spring 2013
45
Application
• Ray-polygon and ray-convex volume intersection
Spring 2013
46
Relative Position Between 2 Lines
Looking from tail of L1 …
Here, the lines are “oriented”!!{orientation defined by U}
Spring 2013
47
Example
x
y
zL1
L2L3
R
L1={1:0:0:0:0:0}L2={-1:1:0:0:0:-1}
L3={0:-1:0:0:0:0}
R={0:0:-1:1/3:-1/3:0} = {0:0:-3:1:-1:0}
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
P:(1/3,1/3,0)Q:(1/3,1/3,1)
R vs. L3: (0:0:-3).(0:0:0) + (1:-1:0).(0:-1:0) = 1 > 0
Note here the line is “oriented”; L and –L are not the same
Spring 2013
48
Example
x
y
zL1
L2L3
R
L1={1:0:0:0:0:0}L2={-1:1:0:0:0:-1}
L3={0:-1:0:0:0:0}
R={0:0:-1:1:-1:0}
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
P:(1,1,0)Q:(1,1,1)
R vs. L3: (0:0:-1).(0:0:0) + (1:-1:0).(0:-1:0) = 1 > 0Spring 2013
49
Discussion
• Plucker coordinate of transformed line– More efficient by computing the Plucker
coordinates of the transformed points (p.30)
Spring 2013
IndexConstructors,
two points 11
tangent-normal 13
two planes 20
Distance (closest pt) to origin 18
Line-plane intersect25,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
50
Line in plane30,32
Point in line 33
Point on plane 32
Line-line configuration37-40
Parallel (distance, common plane) 38
Intersect (point, common plane) 38
Skew 44
Distance (point-line-plane)41-44
Winding 45
Spring 2013
51
Vector triple product
Triple product
Spring 2013
52
[Example]
x
y
z
U=(1,0,-1)V=(0,-1,0)L={1:0:-1:0:-1:0}
Different normal gives different lineL’ = {1:0:-1: 0:-2:0}
Reverse normal gives different lineU=(1,0,-1)V=(0,1,0)L’={1:0:-1:0:1:0}
x
y
z Spring 2013