三.js相机旋转误差
Three.js camera rotation error
Firebug在我的var相机上抛出一个错误,说"THREE未定义",老实说,我看不出为什么。这个错误对我来说没有任何意义,因为在我看来;在等号的右手边有一个定义的 THREE 权利。
init();
animate();
function init()
{
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
camera.position.z = 500;
var controls = new THREE.TrackballControls( camera );
controls.addEventListener('change', render);
var scene = new THREE.Scene();
var geometry = new THREE.BoxGeometry(100, 100, 100);
var material = new THREE.MeshBasicMaterial();
var mesh = new THREE.Mesh( geometry, material );
scene.add(mesh);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild( renderer.domElement );
}
function animate()
{
requestAnimationFrame( animate );
controls.update();
}
function render()
{
renderer.render( scene, camera );
}
你的代码很好,除了你在 init() 函数中定义你的变量,这意味着这些变量是 init() 函数的本地变量,不会在函数之外被识别。
在函数外部声明变量,这应该有助于解决问题。举个例子:
var camera, controls, scene, geometry, material, mesh, renderer;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
camera.position.z = 500;
...
最有可能的是,您没有正确包含三个.js脚本。检查Firebug并注意THREE变量 - 在开始使用THREE.JS之前必须定义它。检查网络错误是否正确加载。
接下来,确保在加载页面的其余部分后运行代码。
window.addEventListener('load', init);
这将仅在页面加载后调用 init 函数
然后,在全局范围内而不是在 init 函数中定义变量。另外,不要忘记在动画函数中调用渲染函数。
相关文章:
- 知道为什么我的旋转木马不会自动更改图片吗
- 顺时针旋转Svg元件
- 将鼠标旋转限制为特定的度数
- 旋转后拖动对象
- 禁用旋转木马中的下一个按钮和上一个按钮
- 手动创建旋转活动指示器
- 如何在容器中定位旋转的图像
- 在轴上旋转SVG图像
- 绕z轴旋转时出现iOS陀螺仪错误
- 旋转按钮[HTML][JS]
- 在JS中围绕旋转对象旋转对象
- Threejs-围绕中心旋转对象
- 旋转木马;启用内容安全策略时无法工作
- 如何在使用Kinetic拖动同一对象后,在旋转动画中保持先前的偏移
- 菜单切换时箭头旋转
- 较大引导转盘中的较小引导转盘-较小引导转盘上的旋转功能问题
- 需要关于随机图像旋转的指南
- 根据摄影机视图更改计算对象旋转
- 浮点0.2+0.1舍入误差
- 三.js相机旋转误差