Javascript Three.js旋转矢量与屏幕边缘检测

Javascript Three.js旋转矢量与屏幕边缘检测,javascript,matrix,three.js,Javascript,Matrix,Three.js,我有一个向量,我试图保持长度,但在与屏幕边缘碰撞时旋转90度,但它给我一种奇怪的效果…不知道我能做什么,但当我尝试应用矩阵和Euler变换时会发生…同样对于屏幕检测,我有okj用于在屏幕上和屏幕外检测,但知道是底部、顶部、右侧还是左侧边缘会很方便…有什么线索吗?谢谢 var direction = new THREE.Vector3(-0.2, -0.2, 0); var a = new THREE.Euler( (Math.PI/2), 0, 0, 'XYZ' ); direction.app

我有一个向量,我试图保持长度,但在与屏幕边缘碰撞时旋转90度,但它给我一种奇怪的效果…不知道我能做什么,但当我尝试应用矩阵和Euler变换时会发生…同样对于屏幕检测,我有okj用于在屏幕上和屏幕外检测,但知道是底部、顶部、右侧还是左侧边缘会很方便…有什么线索吗?谢谢

var direction = new THREE.Vector3(-0.2, -0.2, 0);
var a = new THREE.Euler( (Math.PI/2), 0, 0, 'XYZ' );
direction.applyEuler(a);
对于碰撞;我正在使用以下命令:

camera.updateMatrixWorld(); // make sure the camera matrix is updated
camera.matrixWorldInverse.getInverse( camera.matrixWorld );
cameraViewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
frustum.setFromMatrix( cameraViewProjectionMatrix );

console.log(frustum.intersectsObject(textMesh));

我去掉了这条线,得到了反转的摄像机投影矩阵


屏幕边缘实际上变成了我的
视图截锥体
之外的一个对象,我的对象现在可以主动与之碰撞。由于现在是一个负视图的平截头体,除了我们看到的东西以外,所有东西都是一个“有墙的物体”,它限制了平截头体本身。

我去掉了这条线,得到了反转的相机投影矩阵

屏幕边缘实际上变成了我的
视图截锥体
之外的一个对象,我的对象现在可以主动与之碰撞。由于现在是一个负视图的平截头体,除了我们看到的东西以外,所有东西都是一个“有墙的物体”,它限制了平截头体本身