In a highly technical post like this I'm never sure how well I'm explaining it. I tried to keep things at the high school trig/algebra II level for this one. I've proofread it a billion times now but is there anything I can clarify?
I think I discovered a tiny problem in your 'relative proportions' formula picture.
you have
y' y
- = -
z' z'
in the first line. The z' on the bottom right should be just a z, right?
Other than that, this is perfectly clear, and I understood it even though I just came out of high school and haven't started college yet! Absolutely fantastic work!
Oops. Actually it's not a z' in the denominator in the second fraction, but a comma following the fraction bar. That's confusing; I have removed it. Thanks!
If you like deconstructing obfuscated c, then you may also enjoy Obfuscated C And Other Mysteries by Don Libes. In addition to coding advice, it looks at some of the top entries from the Obfuscated C Contest, 1984-1991.
And now it's 2011, I'm almost expecting some bright-young-thing to post up an alternative method, which involves offloading the 3d render and animation to the video card, painting that onto an invisible html5 canvas, then using JavaScript to paint ASCII characters over the top based on the average brightness/colour of regions of the hardware generated image...
Isn't that basically how the various ASCII renderers for 3d games over the years have worked? Minus the html5 canvas obviously, although being as you can run the entire of quake in javascript/webgl, that can't be far off.