代码之家  ›  专栏  ›  技术社区  ›  nickponline

如何在three.js中绘制从3d到2d的线段?

  •  1
  • nickponline  · 技术社区  · 7 年前

    我正在尝试从一个三维场景的点到一个HUD用户界面的点绘制一个线段。线段的一端在3D中指定,例如(1.232,-34.12,4.21),而另一端在二维像素坐标中指定,例如(320,200)。

    如何将二维坐标转换为三维点,并在相机(透视)移动时保持这些像素坐标?最初,我考虑采用二维位置并将其投射到近视截锥上,也许这是可行的,但不确定该怎么做,或者是否有更好的方法?

    1 回复  |  直到 7 年前
        1
  •  1
  •   gaitat    7 年前
    var vector = new THREE.Vector3(320, 200, 0.5);
    vector.unproject(camera);
    

    将返回 vector 可用于绘制的三维点。 如果在透视相机移动时不进行投影,则可以保证二维点不会在HUD中移动。