Re: Question about Pluecker coordinates
- From: "Dave Eberly" <dNOSPAMeberly@xxxxxxxxxxxxxxx>
- Date: Thu, 31 Jul 2008 10:02:33 -0700
"bite" <anonimo.passante@xxxxxxxxx> wrote in message
news:5a8942be-8984-42fa-be40-5fdcbd31d692@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Not just curious; this approach can be useful when you must fit a line
to more than two points.
I prefer the direct approach in 3D that uses least-squares fitting,
which requires computing the eigenvectors of a symmetric 3x3 matrix.
The SVD approach seems like overkill...
True, it is not linear, anyway it is a condition and I am amazed by<snip>
finding it automatically satisfied.
Yes, it is probably so, but I cannot see it intuitively.
Your 8 equations in 6 unknowns may be written as follows. Set
u = (Lwx,Lwy,Lwz) and v = (Lyz,Lzx,Lxy). Let q1 = (x1,y1,z1)
and q2 = (x2,y2,z2). Let w1 and w2 be nonzero.
Cross(q1,u) - w1*v = 0
Dot(q1,v) = 0
Cross(q2,u) - w2*v = 0
Dot(q2,v) = 0
(1) Dot(q1,v) = 0 is implied by the first equation:
0 = Dot(q1,Cross(q1,u)) - w1*Dot(q1,v) = -w1*Dot(q1,v)
Dividing by -w1 produces Dot(q1,v) = 0. The same observation
holds for Dot(q2,v). In this sense, two of your equations are
redundant (maybe this fits in with your intuition of "double
redundancy").
(2) If (u,v) is a solution to the equations, then so is (t*u,t*v)
for any scalar t. This is your homogeneity condition.
(3) 0 = Dot(u,Cross(q1,u)) - w1*Dot(u,v) = -w1*Dot(u,v)
which implies Dot(u,v) = 0. This is your other condition on
the Pluecker coordinates.
(4) I assume you want the homogeneous points not to be equivalent.
If q1 and q2 are linearly dependent, then c1*q1+c2*q2 = 0 for some
scalars c1 and c2, not both zero, and
0 = c1*(Cross(q1,u) - w1*v) + c2*(Cross(q2,u) - w2*v)
= Cross(c1*q1+c2*q2,u) - (c1*w1+c2*w2)*v
= -(c1*w1+c2*w2)*v
If c1*w1+c2*w2 = 0, then c1*(q1,w1)+c2*(q2,w2) = (0,0) which
implies the homogeneous points are equivalent (a contradiction).
Instead, it must be that v = 0. One of q1 or q2 is not zero, say it
is q1. Then 0 = Cross(q1,u) - w1*v = Cross(q1,u), in which case
u is parallel to q1: u = t*q1 for some scalar t. Thus,
(u,v) = t*(q1,0)
which is a 1-dimensionsal solution set (your SVD should have 5
positive singular values).
(5) If q1 and q2 are linearly independent, then Dot(q1,v) = 0 and
Dot(q2,v) = 0 imply v = t*Cross(q1,q2) for any scalar t. Then
0 = w2*(Cross(q1,u) - w1*v) - w1*(Cross(q2,u) - w2*v)
= Cross(w2*q1-w1*q2,u)
in which case u = s*(w2*q1-w1*q2) for some scalar s. Also,
0 = Cross(q1,u) - w1*v
= Cross(q1,s*(w2*q1-w1*q2)) - w1*t*Cross(q1,q2)
= -w1*(s+t)*Cross(q1,q2)
Since w1 and Cross(q1,q2) are not zero, it must be that s = -t
and
(u,v) = t*(w1*q2-w2*q1, Cross(q1,q2))
which is a 1-dimensionsal solution set (your SVD should have 5
positive singular values).
--
Dave Eberly
http://www.geometrictools.com
.
- References:
- Question about Pluecker coordinates
- From: bite
- Re: Question about Pluecker coordinates
- From: Dave Eberly
- Re: Question about Pluecker coordinates
- From: bite
- Re: Question about Pluecker coordinates
- From: Dave Eberly
- Re: Question about Pluecker coordinates
- From: bite
- Question about Pluecker coordinates
- Prev by Date: polygon on a sphere
- Previous by thread: Re: Question about Pluecker coordinates
- Next by thread: Free Downloadable Christian Clipart
- Index(es):
Relevant Pages
|