我可以使用three.js 显示图形对象的完整页面视图,并使用鼠标单击对象来选择对象。
但是,如果我尝试在 html 页面内的小视口中显示 three.js 图形,我会遇到问题。要从屏幕坐标计算鼠标单击位置的视口坐标,我需要知道视口左边框和视口上边框的像素偏移值。
然后我可以使用坐标转换算法,例如(修改自http://stemkoski.github.com/Three.js/Mouse-Tooltip.html):-
mouse.x = ( (event.clientX - viewport_OffsetLeft_X) / viewport_Width) * 2 - 1;
mouse.y = - ( (event.clientY- viewport_OffsetTop_Y) / viewport_Height ) * 2 + 1;
但我的问题是:- 我如何获得视口偏移的值?请注意,我需要在运行时执行此操作,而不是通过检查来自调试器的值然后将它们硬连接到代码中。
任何建议都感激不尽!