home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: sci.math
- Path: sparky!uunet!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!ira.uka.de!sol.ctr.columbia.edu!usenet.ucs.indiana.edu!bronze.ucs.indiana.edu!dhart
- From: dhart@bronze.ucs.indiana.edu (dave hart)
- Subject: Re: Projecting a vector onto a plane
- Message-ID: <C03DJn.Jy6@usenet.ucs.indiana.edu>
- Sender: news@usenet.ucs.indiana.edu (USENET News System)
- Nntp-Posting-Host: bronze.ucs.indiana.edu
- Organization: Indiana University
- References: <1992Dec17.150409.13943@bert.eecs.uic.edu> <1992Dec17.161552.7160@sophia.smith.edu>
- Date: Wed, 30 Dec 1992 21:40:34 GMT
- Lines: 21
-
- In article <1992Dec17.161552.7160@sophia.smith.edu> orourke@sophia.smith.edu (Joseph O'Rourke) writes:
- >In article <1992Dec17.150409.13943@bert.eecs.uic.edu> barnes@bert.eecs.uic.edu (Craig Barnes) writes:
- >>
- >>How do I project an arbitrary
- >>vector on to a plane defined by two other vectors?
- >
- >Call the arbitrary vector V, and the two vectors in the plane A and B.
- >Here is one method. Compute a normal N to the plane by crossing
- >A and B: N = A x B. Make this a unit normal n. Project V onto this
- >normal with the dot product: d = V . n. Now your unknown vector U
- >plus (d n) must give V. So U = V - d n.
-
-
- You could also look at it as a "least squares" problem [finding best
- approximation in plane spanned by A, B]. You want V = x_1 * A + x_2 * B, for scalar
- x_i, or X*x = V, where X is the matrix with columns A, B and x is the vector of x_i's.
- The standard least squares "solution" [see for example Strang's Applied Math] is
- the solution of tX*X*x = tX*V, so
- x = (tX*X)^(-1)*(tX*V), where tX means transpose X,
- and U = X*x = etc. [and actually computing an inverse to solve is *bad form* ;-]
- I haven't done an operation count on it, lately...
-