Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Threejs Fit plane to screen
var cameraZ = camera.position.z;
var planeZ = 5;
var distance = cameraZ - planeZ;
var aspect = viewWidth / viewHeight;
var vFov = camera.fov * Math.PI / 180;
var planeHeightAtDistance = 2 * Math.tan(vFov / 2) * distance;
var planeWidthAtDistance = planeHeightAtDistance * aspect;
// or
let dist = camera.position.z - mesh.position.z;
let height = ... // desired height to fit
camera.fov = 2 * Math.atan(height / (2 * dist)) * (180 / Math.PI);
camera.updateProjectionMatrix();
// Basically solving an AAS triangle https://www.mathsisfun.com/algebra/trig-solving-aas-triangles.html
https://i.stack.imgur.com/PgSn3.jpg
@mikatalk
Copy link

mikatalk commented Oct 10, 2020

Excellent, merci! 🌟

@manudurgoni
Copy link

manudurgoni commented May 15, 2021

Merci chouchou <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment