|
3d to 2d Projection |
blargmob
Member #8,356
February 2007
|
Howdy, I'm looking for a "hands-on" (not necessarily in programming) way to project the coordinates of a 3d point onto a 2d "screen". I've tried google to avail, all the results are alien to me and I need to know how to do this specific method. Say I have: - A 3d point we'll call [Point] Using those three elements, how can I find the 2d projection coordinates of the 3d point [Point] onto the plane [Screen]? (I remember we have to use some kind of fractional distance formula using Z or something?) --- |
Billybob
Member #3,136
January 2003
|
Cast a ray from [View] to [Point]. The intersection point of ray and [Screen] gives you the 2D projection. At least, that's how I remember it from building various ray-caster engines.
|
blargmob
Member #8,356
February 2007
|
I meant with pen and paper. Not programming...and without casting rays. --- |
OnlineCop
Member #7,919
October 2006
|
Hold up a pencil so the [Point] is where you want it. Hold up a pencil vertically in front of your face. It may be easier to do this with a transparency. Look through the paper/transparency and, with a second marking instrument, mark where the dot would appear on your held-up paper. The point may change depending on how high your eye is relative to the paper, so make sure your head is always in the same place. Repeat for all 2,000 other points you want to test. Explain what you're wanting? Some mathematical equation to do this? And make sure (0, 0) is at the center of your view plane, so a negative 'x' will move to the left and a positive 'x' will move to the right.
|
Evert
Member #794
November 2000
|
Ok, first things first. Orthogonal projection on the x-y plane. Perspective projection on the x-y plane. Projection onto an arbitrary plane through the origin. Projection on an arbitrary plane. So, to sum up: Hope that helps! EDIT: rereading your post, it looks like you want something a little more complicated, but it's essentially the same as above (only applied twice). |
decepto
Member #7,102
April 2006
|
I got a C in Linear Algebra, but I KNOW there is a method for projecting points in 3d space onto a 2d plane using linear algebra. Sorry, that's not much help. But hopefully that will help with your google search. -------------------------------------------------- |
Slartibartfast
Member #8,789
June 2007
|
By projecting a vector v to a plane what you want are its coordinates in the base that describes the plane, so if your plane is defined by two vectors e1 and e2 (lets assume they are normalised), you want to know how "long" the vector is on the e1 axis and how long it is on the e2 axis, which is v*e1 and v*e2. If you want the vector v to describe a point relative to your plane, you must subtract the centre point of the plane from v. (v*e1 = v1*e11 + v2*e12 + v3*e13 in the 3d case) This definition is the mathematical definition (in "light" terms) In case of drawing to paper try http://en.wikipedia.org/wiki/Perspective_(graphical)#Types_of_perspective ---- |
Evert
Member #794
November 2000
|
decepto said: I got a C in Linear Algebra, but I KNOW there is a method for projecting points in 3d space onto a 2d plane using linear algebra.
What'd you think all of the mathematics in my post were? Ok, maybe that explanation is a little bit easier than the one I gave before. |
|