2012-11-12 39 views
14

Có cách nào để tìm chiều rộng của phần được hiển thị của cảnh không?Three.js - Chiều rộng của chế độ xem

Ví dụ: nếu chúng ta có lưới có chiều rộng 100, nhưng được hiển thị với một mức thu phóng nhất định ... làm cách nào tôi có thể tính chiều rộng của phần lưới đang được hiển thị trên màn hình?

Trả lời

23

Bạn phải chính xác ở đây.

Bạn có thể tính vùng hình chữ nhật có thể nhìn thấy được cho trường xem của máy ảnh, camera.fov và khoảng cách nhất định, dist, từ máy ảnh.

Vì đối tượng có lẽ có độ sâu, bạn phải chọn một mặt phẳng qua lưới và thực hiện phép tính ở khoảng cách đó.

Dưới đây là cách tính heightwidth hiển thị cho một khoảng cách nhất định dist từ máy ảnh.

var vFOV = THREE.Math.degToRad(camera.fov); // convert vertical fov to radians 

var height = 2 * Math.tan(vFOV/2) * dist; // visible height 

var width = height * camera.aspect;   // visible width 

three.js r.87

+0

là 'dist' một giá trị từ FAR giá trị tài sản máy ảnh? –

+0

'dist' phải nhỏ hơn' FAR', nếu không vị trí sẽ không hiển thị. – WestLangley

+1

trully ... Tôi hiểu lầm, từ những gì 'dist' xảy ra .. Không thể nhìn thấy định nghĩa trước đó của nó giá trị trong mã, mô tả xin vui lòng, các' dist' là gì? Dtis = Viễn - Gần hay không? Cảm ơn! –

Các vấn đề liên quan