The camera's default direction faces along the +z axis, but this can be changed. The size of the cat does not change, though. Try to not make the z value less than the Camera's z value. It doesn't work if you do that. The way this works is it converts the Cartesian coordinates (x,y,z) of the cat and translates them according to the position of the camera. It then turns the translated coordinates into spherical coordinates (r,Θ,Φ). After discarding the r value, I took the two angles (Θ,Φ) and then translated them according to the direction in which the camera is facing. Then I use the translated angles to find the x and y values. These are then converted to polar coordinates and the camera tilt is applied to it. The polar coordinates are then turned back into x and y values that To summarize: (Cat xyz - Camera xyz) --> Cat ΘΦ, (Cat ΘΦ - Camera ΘΦ) --> Pre-Disp xy --> Pre-Disp rΘ, (Pre-Disp rΘ + Twist angle) --> True Disp rΘ --> True Disp xy It's a pretty long and extensive method, but it considers many possible factors. Btw: Θ is called theta and Φ is called phi.
v1.1: The original Better 3D Sim. You could move the cat around, but not the camera. v1.2: You could now move and rotate the camera. v1.3: You can now tilt the camera. The cat rotates as a visual cue. I made the equations myself. And the [goto: xyz] block, too. That's about it.