首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X3DOM自定义导航

X3DOM自定义导航
EN

Stack Overflow用户
提问于 2015-06-19 04:22:40
回答 1查看 544关注 0票数 1

X3DOM是否有一种实现自定义相机导航的正确方法?当用户拖动缩放滑块时,我想放大,当用户拖过屏幕时,我想放大。X3DOM是否有调用pan()、缩放()或旋转()功能的API?

到目前为止,我可以想到三个解决方案,它们不是理想的解决方案:

  1. 手动更改视点属性: document.getElementById("the_viewpoint").setAttribute("orientation", "some numbers here");
  2. 保持视点不变,改变包含整个3d世界的<transform>的位置/旋转
  3. 重新安排事件。例如,当用户滑动缩放滑块时,启动鼠标轮事件进行缩放。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-27 05:53:47

看起来像此功能是最近添加的。,但是还没有得到适当的记录

公共关系包括以下例子:

代码语言:javascript
复制
var d = function(selector) { return document.querySelector(selector)}

x3dom.runtime.ready = function() {
    var x3d = d('x3d');
    var viewpoint = d('viewpoint');
    var x3dCanvas = x3d.runtime.canvas;

    var _onMouseWheel = x3dCanvas.onMouseWheel;

    x3dCanvas.onMouseWheel = function(event) {
        if(event.altKey) {
            var offset = .01
            var fov = parseFloat(viewpoint.getAttribute('fieldofview')) || 1.571;

            if(event.wheelDelta < 0) offset = -offset;
            fov = Math.min(2, Math.max(0, fov+offset));

            viewpoint.setAttribute('fieldofview', fov)

        } else {
            _onMouseWheel.call(this, event);
        }
    }

    x3dCanvas.canvas.removeEventListener('mousewheel', _onMouseWheel); // unable to unbind when handler is anonymous function 
    x3dCanvas.canvas.addEventListener('mousewheel', x3dCanvas.onMouseWheel);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30929849

复制
相关文章

相似问题

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