繁体   English   中英

如何使用 Autodesk Forge 查看器在 3D model 中查找位置(x、y、z 坐标)

[英]How to find the position(x,y,z coordinates) in the 3D model using autodesk forge viewer

当使用这个repo单击它时,我试图在 3D model 中找到表面的位置(x,y,z 坐标)。 我尝试在 model 上单击,但每次单击都会得到相同的 position(x、y、z 值)。 单击此处查看 position 当我单击表面时,当我尝试单击 model 中的(其他位置)时,我也得到了相同的位置(x、y、z 值)。 对于这个 model(urn:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YXBwdGVzdGJ1Y2tldG5pc2hhbnQyL2dhdGVob3VzZSUyMDEubndk),我已经尝试了在 repo 链接中给出的完全相同的东西。 如何在 model 中找到位置(x、y、z 坐标)? 提前致谢。

这通常是计算 cursor 坐标时相对于托管 Forge 查看器的 canvas 的问题,因此首先要确保这些坐标是正确的。 例如,单击 canvas 的左上角附近应该会为您提供接近 (0,0) 的相对 cursor 坐标。 然后将这些相对坐标传递给 Viewer API 以进行光线投射和命中测试。

这是另一个执行相同操作的示例代码(单击画布后查找最近命中的世界坐标):

   $('#viewer').on('click', function(ev) {
        let intersections = [];
        const bounds = document.getElementById('viewer').getBoundingClientRect();
        mainViewer.impl.castRayViewport(mainViewer.impl.clientToViewport(ev.clientX - bounds.left, ev.clientY - bounds.top), false, null, null, intersections);
        if (intersections.length > 0) {
            const intersection = intersections[0];
            $('#issue-part').val(intersection.dbId);
            $('#issue-position-x').val(intersection.point.x.toFixed(2));
            $('#issue-position-y').val(intersection.point.y.toFixed(2));
            $('#issue-position-z').val(intersection.point.z.toFixed(2));
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM