打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
编程问题 · Verge3D用户手册

编程问题

您说Verge3D基于Three.js。它与Three.js API兼容吗?

为了创建Verge3D,我们大量修改了Three.js代码库,因此我们决定对API使用“v3d”前缀。但是,我们将尝试维护与Three.js的源代码兼容性。大多数基于Three.js的应用程序和示例都可以在Verge3D中运行,无需进行任何修改。

如何在调整大小时保留场景比例?

我们希望所有对象,无论它们与摄像机的距离如何,都显示相同的大小,即使调整了窗口的大小。解决此问题的关键公式是该公式针对给定距离的可见高度:

visible_height = 2 * Math.tan((Math.PI / 180) * camera.fov / 2) * distance_from_camera;

如果我们将窗口高度增加一定百分比,那么我们想要的是在所有距离处的可见高度都以相同百分比增加。不能通过更改相机位置来做到这一点。相反,您必须更改相机的视野。例子

我的应用程序窗口在iOS设备上不断拉长。如何解决?

如果将Verge3D应用程序嵌入iframe元素中,则可能会遇到iOS设备上的特定问题,这会导致iframe的大小不断增加,超出浏览器窗口的范围。反过来,这可能导致WebGL崩溃。

要解决此问题,您可以使用以下代码段,该代码段将iframe调整为页面主体的尺寸,以防止该iframe超出页面范围。

<script>if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent)) {    var iframe = document.getElementById('myIframe');    function resize() {        iframe.style.width = getComputedStyle(document.body).width;        iframe.style.height = getComputedStyle(document.body).height;        iframe.setAttribute('scrolling', 'no');    }    iframe.addEventListener('resize', function(e) {        resize();    });    resize();}</script>

键盘控件不适用于内嵌在iframe中的应用。

当页面上的其他HTML获得焦点时,就会发生这种情况。要解决此问题,请尝试以下代码:

document.getElementById("my_iframe_id").focus();

其中my_iframe_id是iframe元素的ID。

最后更新:2019-12-14 15:18:34
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于 Angular 编程中的 shim 概念
C++ 利用COM接口操作网页元素的问题
突破屏蔽代码-和讯初级者照样放广告!
nunuStudio:一款支持 3D 及 VR 应用的 JS IDE
如何反击令人防不胜防的JS挂马
调试js与不调试运行结果不一样问题分析 | 技术部
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服