Single-point perspective is just about the simplest form of perspective projection it is possible to have. It is called single-point perspective because it involves only a single vanishing point. This was the first type of perspective to be formally discovered, during the renaissance, but before that artists had approximated one and two point perspecive just by trying to draw what they saw.

I am not an art historian but I can tell you how to draw things with single-point perspective both on paper and using a computer.

I should point out, at this point, that though single-point perspective does give a feeling of depth that is slightly better than orthographic projection (i.e. no perspective), it really won't give spectacular results. Two-point perspective gives much nicer results but that's another node.

The first thing to do for single-point perspective is to pick your single point. This point will be the vanishing point and almost all the lines on the drawing will converge to this point. Most often this point should be very close to one of the corners of your paper. This is because normally you will want the perspective effect to be quite subtle so that the lines coming off your drawing will not be extremely non-parallel.

Draw the front of the object you are trying to draw, in two dimensions. It is easiest to start with shapes that don't have curves though this technique works pretty well with curves as well. This step shows a major limitation of single-point perspective: the surface you have just drawn will look pretty flat when you are finished because all the perspective lines will look like they come off it at a right angle.

From every corner lightly draw a line to the vanishing point. Lightly because thse are construction lines and you're only going to have to rub them out later!

Decide how thick you want your object to be. Mark one of the perspective lines at that distance from where is joins the object.

Line up a 90o set square with the lines of the original shape that the marked perspective line joins. Place a ruler against the side of the set square at 90o to the line. Holding this ruler down, slide the set square down the ruler until it reaches the mark on the perspective line. Draw a line lightly between the two perspective lines at this point.
You don't necessarily have to do it this way, it's just simple and reliable. The main point is that the original drawing line and the new one are parallel.

Repeat this for all the corners of the shape. You now have a perspecive wireframe of your shape. Now, simply draw over the visible lines more strongly, rub out the rest of the lines and there you have a single-point perspective projected drawing. (I told you it doesn't look that great!)

This is much, much easier because the computer does all the work for you. It is the method for perspective projection in computer graphics. This is because it models the camera as a pinhole i.e. just like your eye. This means it is also much less limited than paper single-point perspective.

Assuming the camera (i.e. you) is the origin and you are looking down the z axis all you have to do is scale the x and y coordinates of all the points in your graphic by a factor of "some constant over z" ( c/z ). That means that the further away from the camera they are (the bigger z is) the smaller the objects become from your point of view.

If you are using a single homogeneous (4x4) matrix for your camera transform then perspective is much more annoying. The parameter for perspective goes in position (2,3) if you are pre-multiplying (see example below). This causes a problem because you need the parameter to be c/z, a division by a number that isn't in this matrix: the z parameter of the point being transformed.

What you have to do is just do it anyway. This gives you a point in perspective sub-space. Then you just divide each element in that result by the parameter at point (0,3) e.g.

```
|1  0  0  0| |x|     | x  |
|0  1  0  0| |y|  =  | y  |
|0  0  1  0| |z|     | z  |
|0  0  v  1| |1|     |vz+1|

Then dividing by (vz+1) gives:

|x/(vz+1)|
|y/(vz+1)|
|z/(vz+1)|
|   1    |
```

Although by this point only the x any y coordinates are relevent. You might ask why you would bother to do it this way when it takes more calculations, and achieves exactly the same result as the first method. The answer to that is related to what v actually represents which is to do with the focal distance of the camera and is not really within the scope of this node. Look up "perspective transform" in a graphics textbook for the mathematical explanation.

Sources:
For the Drawing Section:
My memory of G.C.S.E. Graphical Communication.

For the Computer Graphics Section:
Burger and Gilles, "Interactive Computer Graphics", Addison Wesley, 1989, ISBN: 0-201-17439-1
Foley, van Dam, Feiner and Hughes, "Computer Graphics Principles and Practice", Addison Wesley, 1997, ISBN: 0-201-84840-6
J.A.D.W. Anderson, "Computer Graphics 2001" Lecture Notes, Reading University.