Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 1.63 KB

README.md

File metadata and controls

53 lines (42 loc) · 1.63 KB

Experimentation with 3d formulae in DOS.

The program demonstrates a cuboid which can be rotated and translated using mentioned keys. The 3d formulae used are:


Symbols Meaning
objectx, objecty, objectz point of rotation of object
camerax, cameray, cameraz point of camera looking at the world you make
xpos, ypos, zpos position of pixel in the world coords
a, b, c angles around x, y, z axes
xscale, yscale scale factors for x, y axes
xcentre, ycentre centre of vision on the screen
x, y position of pixel on screen

x1 = xpos - objectx
y1 = ypos - objecty
z1 = zpos - objectz
y2 = y1*cos(a) + z1*sin(a)
z2 = z1*cos(a) - y1*sin(a)
x2 = x1*cos(b) + z2*sin(b)
z3 = z2*cos(b) - x1*sin(b)
y3 = y2*cos(c) + x2*sin(c)
x3 = x2*cos(c) - y2*sin(c)
rx = objectx - camerax
ry = objectx - cameray
rz = objectz - cameraz
xf = rx + (xscale*x3) / (rz+z3)
yf = ry + (perspy*y3) / (rz+z3)
x = xf + xcentre
y = yf + ycentre


Cuboid in default position (keeps rotating).


Cuboid in moved position (translated, rotated).

qb40