Drexel dragonThe Math ForumDonate to the Math Forum

Ask Dr. Math - Questions and Answers from our Archives
_____________________________________________
Associated Topics || Dr. Math Home || Search Dr. Math
_____________________________________________

3-D Points to a 2-D computer screen


Date: 07/25/97 at 17:00:28
From: Lee Savage
Subject: 3-D Points to a 2-D computer screen

Hello Dr. Math,

I am trying to write a 3-D graphics engine which (at least right now) 
takes 8 points with their own (X,Y,Z) coordinates to plot a CUBE in 
3-D space.  The problem I am running in to is that no one, no books, 
no sites (actually your site came close in some of the linear algebra 
questions you've already answered) I have searched have had the answer 
to this question: for a point in 3-D space, how do I offset X and Y 
with the Z value, so that the proper depth for each point appears in 
3-D on a 2-D space (computer screen).  I have everything programmed 
except for the function that takes the X,Y,Z values and uses them to 
calculate X and Y so it can plot the point on the screen. 

Example :

  Point 1 X = -10      Point 2 X = -10
          Y =  10              Y = 10
          Z =  10              Z = 20

Obviously, even though Point1 and Point2 have the same X,Y values 
their Z values are different. To get the 3-D display, I know I must 
use the Z in some formula to offset X and Y (I'm guessing towards the 
origin X and Y) resulting in a final 3-D point.

Please help! Thanks very much,

    -Lee Savage


Date: 08/04/97 at 13:26:33
From: Doctor Bernard
Subject: Re: 3-D Points to a 2-D computer screen

I too struggled with this problem about 20 years ago.  Conceptually a 
3-d image shown on a computer screen must be looked at as the 
intersection of a ray from your eye to each point and a plane. The 
ratio of the distance from your eye to the plane and the plane to the 
object determines the size of the image.

The angle of the plane relative to the ray from you eye to the center 
of the object determines perspective type distortions.

So how do we do this. First you need to choose some coordinate system 
in x,y,z to describe your 3-d object. I recommend using the center of 
the object a (0,0,0). This makes the calculations easier. Next you 
need a 2-d coordinate system for the plane. Choose a point in 3 space 
for your eye. The ray from your eye to the center of the object should 
intersect your plane at (0,0).  

Now you need to choose you scale factor by find the 3-d equation of 
the plane. This will take a bit of imagination. Look at the plane, 
which is really your computer screen or paper, as a pane of glass.  
For the purposes of this problem, assume your eye is just a single 
point, infinitely small. If the plane is right up against your eye, 
the image on the plane will also be infinately small. If the plane is 
right up against your object, then the image will be approximately the 
size of the object. You can also put the plane behind the object, in 
which case, the further away you move it, the larger the image.  

I hope this explains the concept of scaling the image sufficiently.   

Once you have the equation of the plane, you need only find the 
intersection of each ray from your eye to a point on the plane and 
plot that point using 2-d coordinates.

I know the explanation is kind of simplistic, but if you work out the 
equations on your own, you will understand this much better. If you 
are programming this problem, use variables whenever possible. This 
will enable you to quickly scale or distort the image by changing the 
variables.

Another issue, of which I did not speak, is the more complicated issue 
of hidden line removal. That becomes very complex, involving finite 
and solid modeling.  If you want to address that issue, we can do so 
in a subsequent communication.

Hope this helps. 

-Doctor Bernard,  The Math Forum
 Check out our web site!  http://mathforum.org/dr.math/   
    
Associated Topics:
High School Calculators, Computers
High School Equations, Graphs, Translations
High School Linear Algebra

Search the Dr. Math Library:


Find items containing (put spaces between keywords):
 
Click only once for faster results:

[ Choose "whole words" when searching for a word like age.]

all keywords, in any order at least one, that exact phrase
parts of words whole words

Submit your own question to Dr. Math

[Privacy Policy] [Terms of Use]

_____________________________________
Math Forum Home || Math Library || Quick Reference || Math Forum Search
_____________________________________

Ask Dr. MathTM
© 1994-2013 The Math Forum
http://mathforum.org/dr.math/