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
@vlucendo
Copy link

vlucendo commented Oct 23, 2018

Very handy, I was looking for this 👍

@vin-ni
Copy link

vin-ni commented Jul 10, 2019

thank you!

@nicoptere
Copy link

nicoptere commented Jul 18, 2019

thanks poussin ! 🥇

@seriusokhatsky
Copy link

seriusokhatsky commented Aug 23, 2019

Thank you!

@kevinboudot
Copy link

kevinboudot commented Sep 6, 2019

Merci copain ! <3

@thibka
Copy link

thibka commented Aug 23, 2020

Thanks!

@jade-itworkswhy
Copy link

jade-itworkswhy commented Sep 7, 2020

Great, thank you!

@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