[英]show “object/canvas” created using Three.js inside a DIV
Here is the Code: 这是代码:
I want the "object" (which is being created at run time in Canvas using Three.js) inside a specific DIV, right now the object is being created but its being created at the end of page, just before the closing of </body>
how to change the position so it should load inside " <div id="container"></div>
" div. 我想要特定DIV中的“对象”(在Canvas中使用Three.js在运行时创建),现在正在创建对象,但是它是在页面结束时创建的,就在
</body>
结束之前</body>
如何更改位置,以便将其加载到“ <div id="container"></div>
” div中。
Here is my code: 这是我的代码:
HTML: HTML:
<div id="container"></div>
JS JS
// revolutions per second
var angularSpeed = 0.2;
var lastTime = 0;
// this function is executed on each animation frame
function animate() {
// update
var time = (new Date()).getTime();
var timeDiff = time - lastTime;
var angleChange = angularSpeed * timeDiff * 2 * Math.PI / 1000;
cube.rotation.y += angleChange;
lastTime = time;
// render
renderer.render(scene, camera);
// request new frame
requestAnimationFrame(function () {
animate();
});
}
// renderer
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// camera
var camera = new THREE.PerspectiveCamera(120, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 700;
// scene
var scene = new THREE.Scene();
// cube (Lenght, Height, Width)
var cube = new THREE.Mesh(new THREE.CubeGeometry(400, 200, 200), new THREE.MeshNormalMaterial());
//cube.overdraw = false;
scene.add(cube);
// start animation
animate();
FIDDLE for the same: http://jsfiddle.net/6a7u4/1/ 相同的文件: http : //jsfiddle.net/6a7u4/1/
Let me know if you need any other information. 让我知道您是否需要其他信息。
Please suggest. 请提出建议。
At a guess a测
document.body.appendChild(renderer.domElement);
should be 应该
document.getElementById("container").appendChild(renderer.domElement);
Edit: In order to get this working as expected, I've also updated the size to grab its height/width from the container div also. 编辑:为了使此工作按预期工作,我还更新了大小以从容器div也获取其高度/宽度。 The updated render coded looks as follows.
更新的渲染编码看起来如下。
// renderer
var container = document.getElementById("container");
var renderer = new THREE.WebGLRenderer();
renderer.setSize(container.offsetWidth, container.offsetHeight);
container.appendChild(renderer.domElement);
Jsfiddle of result: http://jsfiddle.net/6a7u4/2/ 结果的jsfiddle: http : //jsfiddle.net/6a7u4/2/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.