How do we make objects further away from us look smaller so they appear more realistic?

Doing so would involve making parallel lines intersect at a distance, but we know that's not possible with linear transformation.

However, a linear transformation of *homogeneous* coordinates can.

Addtionally, how do we know how the cube should rotate if we drag its vertex?

It requires some careful matrix transformations...

zoom 1x
10x