我正在XML3D中实现可拖动对象,我需要xml3d.generateRay
函数的帮助,作为一个参数它需要两个数字,正如我所理解的那样,这些是投影空间中光线通过的点的x,y坐标通过。但是这些坐标是参考窗口元素(浏览器窗口的左上角)还是xml左上角?
第二个问题:如何从getElementByRay
规格对于不同的版本说的不同 - 因为没有4.9的规格我会问。
答案 0 :(得分:1)
坐标在窗口空间中给出,因此相对于窗口的左上角。
你可以通过将两个getElementByRay
对象传递给函数来获得命中点并从XML3DVec3
命中正常,例如:
var hitPoint = new XML3DVec3();
var hitNormal = new XML3DVec3();
xml3dElement.getElementByRay(ray, hitPoint, hitNormal);
该函数将在世界空间中使用生命点和法线填充向量。