首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ThreeJS中使用滚动渲染器?

如何在ThreeJS中使用滚动渲染器?
EN

Stack Overflow用户
提问于 2016-12-15 22:06:52
回答 2查看 1.7K关注 0票数 1

我正在使用OrtographicCamera

canvas是用HTML声明的,我将它传递给renderer,如下所示:

代码语言:javascript
复制
var canvas = document.getElementById("canvas")

var width = canvas.clientWidth;
var height = canvas.clientHeight;

renderer = new THREE.WebGLRenderer({
    antialias: true,
    canvas: canvas
});

renderer.setClearColor(0xf0f0f0);
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(width, height);

问题是,我添加到现场的立方体正在被切割。

场景正在增长,其高度大于可用视口的高度。

我想要滚动条,这样我就可以移动到画布底部,看到所有的立方体而不必缩放。

见截图:

代码语言:javascript
复制
<div id="container">
    <canvas id="canvas"></canvas>
</div>

CSS

代码语言:javascript
复制
#canvas
{
    width: 100%;
    height: 100%;
}

任何建议都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-24 15:06:15

我使用了轨道控制,并设法得到了我想要的,那就是,能够看到隐藏的物体在现场。用户只需按箭头向下和箭头向上移动相机向下\向上。

根本不需要摆弄画布元素。这很好,因为在CSS中控制画布大小是有点困难的,而且当涉及到滚动并将其附加到ThreeJS呈现程序时,控制要困难得多。

https://github.com/mattdesl/three-orbit-controls

票数 0
EN

Stack Overflow用户

发布于 2016-12-15 23:39:44

你有两件事要做。首先,画布需要大于客户端窗口才能显示滚动条。确切的尺寸取决于你的需求,但是试着把它比现在的多一倍。

第二个问题是,相机本身有左、右、上、下(以及近和远)飞机,这些飞机定义了摄像机视野内的区域。增加这些值时,设置相机,以获得更多的场景可见在画布。如果您的宽度很好,您可能只能增加顶部/底部,而不是。

https://threejs.org/docs/api/cameras/OrthographicCamera.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41174091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档