我正在使用three.js来制作一个在三维屏幕上移动的盒子动画。
根据噪声函数,它是伪随机运动的.所以,我想把一堵看不见的墙放在视野之外,这样盒子就会留在屏幕上。
我已经做到了这一点。但是,只有当盒子的z坐标为0时,它才能正确工作。
我需要一个基于盒子的z坐标来计算边界的函数。现在,如果z是负的(更远的),边界太小,如果z是正的,边界会变大。
我不知道该怎么做。这就是我是如何创建相机的,我是three.js的新手,这部分我是从教程中复制的:
var camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHe
我是3D编程的新手,我开始探索从WebGL到Three.JS的3D世界。
我想要预先确定对象的大小,而我改变了相机的位置。
例如:我有一个大小为100x100x100的立方体网格.
cube = new THREE.Mesh(
new THREE.CubeGeometry(100, 100, 100, 1,1,1, materials),
new THREE.MeshFaceMaterial()
);
和高宽比为1.8311874的凸轮
camera = new THREE.PerspectiveCamera( 45, aspect_ratio
在Three.js中,我有一种简单的方法可以找到点(相机的位置)和无限延伸的直线之间的距离。然而,我真正需要的是找到一个点和一个由两个点组成的单线段之间的距离。注意:我使用的是Three.js,它有三个空间维: x、y和z。
下面是我在Three.js中使用的线段公式的要点:
var A = lineVertex1.clone()
var B = lineVertex2.clone()
var D = B.clone().sub( A ).normalize();
var d = camera.position.clone().sub( A ).dot( D );
var X = A.clo