Skip
# Perspective drawing calculation

(adsbygoogle = window.adsbygoogle || []).push({});

(adsbygoogle = window.adsbygoogle || []).push({});

Post

# Perspective drawing calculation

January 8, 2013 7:31 PM Subscribe

If I want to draw something in one-point perspective, say, like a set of railroad tracks where the vanishing point is on the horizon, and the tracks are represented on the picture plane by an equilateral triangle (they appear that way to the viewer), the apex of the triangle being the vanishing point on the horizon and the base of the triangle is where the tracks meet the picture plane, how do I calculate where the railroad ties would be? (Given that in 3D they are evenly spaced. Also, I'm not really concerned with the thickness of the ties -- we can consider the ties to simply be horizontal lines.)

Note: I want to do this mathematically, not by eye. I would like to be able to formulate where the "ties" meet the sides (or alternatively where they cross the middle (the height of the equilateral triangle on the picture plane)).

Note: I want to do this mathematically, not by eye. I would like to be able to formulate where the "ties" meet the sides (or alternatively where they cross the middle (the height of the equilateral triangle on the picture plane)).

referring to this drawing.

http://imgur.com/KDXNh

eh is the height of the eye above ground

ez is distance from eye to viewing plane (your drawing surface).

ez + z is the distance of the eye to the railroad tie in question, horizontally, ignoring height.

You are essentially asking what is the height the railroad tie should be drawn on the viewing

plane (vertical line in the drawing denoted by '?' in the drawing).

Similar triangles.

ey / (ez + z) == ? / z

? == (z * ey) / (ez + z)

(I drew that in a hurry, ignore y, and y = 0 in the drawing.)

Don't know if that helps, but that's the answer.

posted by smcameron at 8:13 PM on January 8, 2013

http://imgur.com/KDXNh

eh is the height of the eye above ground

ez is distance from eye to viewing plane (your drawing surface).

ez + z is the distance of the eye to the railroad tie in question, horizontally, ignoring height.

You are essentially asking what is the height the railroad tie should be drawn on the viewing

plane (vertical line in the drawing denoted by '?' in the drawing).

Similar triangles.

ey / (ez + z) == ? / z

? == (z * ey) / (ez + z)

(I drew that in a hurry, ignore y, and y = 0 in the drawing.)

Don't know if that helps, but that's the answer.

posted by smcameron at 8:13 PM on January 8, 2013

This is a rule of thumb I use for this kind of situation. Consider the diagonal from the left side of one tie to the right side of the next tie. And so on, like this:

/

/

/

/

/

/

/

/

Assuming the ties are evenly spaced and parallel, these lines will also be evenly spaced and parallel. Therefor they will also have a vanishing point on the horizon to the right of the vanishing point for the track itself. Exactly how far to the right? I might eyeball that part. If that's unacceptable, do what smcameron said to get two ties. From those two, you can find the vanishing point where their diagonal intersects with the horizon, and derive the spacing of the remaining ties.

posted by RobotHero at 9:08 PM on January 8, 2013

/

/

/

/

/

/

/

/

Assuming the ties are evenly spaced and parallel, these lines will also be evenly spaced and parallel. Therefor they will also have a vanishing point on the horizon to the right of the vanishing point for the track itself. Exactly how far to the right? I might eyeball that part. If that's unacceptable, do what smcameron said to get two ties. From those two, you can find the vanishing point where their diagonal intersects with the horizon, and derive the spacing of the remaining ties.

posted by RobotHero at 9:08 PM on January 8, 2013

Let d(n) be the vertical distance on the paper from the horizon to the nth railroad tie. Then, once you have the first two ties drawn (using smcameron's method, or by eyeballing), a quick way to go on is to notice that the ratio

d(n)/d(n+1)

is the same for all n. This means that

d(n+2) = d(n+1)

posted by zeptoweasel at 9:33 PM on January 8, 2013

d(n)/d(n+1)

is the same for all n. This means that

d(n+2) = d(n+1)

^{2}/d(n).posted by zeptoweasel at 9:33 PM on January 8, 2013

Alberti's Perspective Construction

Here's a very nice writeup for doing that. It does not lend itself to description in words. Bonus, it lets you construct a checkerboard in one-point perspective as well.

And it gives you some mathematical background. The whole article is good.

If you want more information, there is a very nice book by Annalisa Crannell and Marc Frantz called

posted by leahwrenn at 7:13 AM on January 9, 2013

Here's a very nice writeup for doing that. It does not lend itself to description in words. Bonus, it lets you construct a checkerboard in one-point perspective as well.

And it gives you some mathematical background. The whole article is good.

If you want more information, there is a very nice book by Annalisa Crannell and Marc Frantz called

*Viewpoints*. (Disclaimer: they're friends of mine and I thought out of it in a pre-publication version as a tester. )posted by leahwrenn at 7:13 AM on January 9, 2013

This thread is closed to new comments.

posted by odinsdream at 7:38 PM on January 8, 2013 [2 favorites]