所以,我试图在观众中定位HTML几乎让它看起来像是场景的一部分。因此,当您移动相机时,我希望它在观察者方面的位置能够保持原样。现在,我试图在相机移动时移动HTML来模拟它;但是,我不确定我的等式是不对,还是我不在那里。它似乎略微移动,但不会像相机移动时那么多。换句话说,如果我将html放在查看器中的多维数据集顶部,并移动相机,我想要html跟随多维数据集。这就是我的尝试:
this.viewer.addEventListener(av.CAMERA_CHANGE_EVENT, function(e){
console.log($(`.draggable`).attr(`originalPos`));
console.log(e.camera);
var width = window.innerWidth, height = window.innerHeight;
var widthHalf = width / 2, heightHalf = height / 2;
let originalPos = $(`.draggable`).attr(`originalPos`).split(` `);
let originalX = originalPos[0];
let originalY = originalPos[1];
$(`.draggable`).css(`position`, `absolute`);
let pixelX = (e.camera.position.x * .0005 + .5) * e.target.container.clientWidth;
let pixelY = (e.camera.position.y * -.009 + .5) * e.target.container.clientHeight;
$(`.draggable`).css(`left`, e.camera.position.x + pixelX);
$(`.draggable`).css(`top`, e.camera.position.y + pixelY);
});
$(`#viewer .adsk-viewing-viewer`).append(`<h1 originalPos = "50px 100px" class = "draggable" style="position: absolute; top: 50px; left: 100px;">Test</h1>`);
但这似乎没有正确的缩放。它并没有保持在我想要的位置。我已经在你的MarkupsCore工具中看到了这个类似的概念,并且区域测量工具似乎也有一些基于相机定位的html。你是怎么做到的?
答案 0 :(得分:0)
看看这篇博客文章:
https://forge.autodesk.com/blog/3d-markup-icons-and-info-card
它有源代码和一个示例repo,它显示了如何定位HTML DIV元素以显示卡在Forge Viewer中的3D对象。