【问题标题】:Marker position in Screen format (using AR.js)屏幕格式的标记位置(使用 AR.js)
【发布时间】:2021-10-07 00:03:34
【问题描述】:

我能够使用以下代码获取标记位置

this.marker.object3D.getWorldPosition(vector);

我想知道是否可以将此位置(x,y,z)转换为等效的屏幕位置(宽度,高度)。

你能给我一些解决这个问题的想法吗?

【问题讨论】:

    标签: javascript three.js aframe ar.js


    【解决方案1】:

    您可以通过两个步骤来做到这一点:

    • 通过Vector3.project()将世界空间中的位置转换为NDC空间。
    • 使用画布的width 和height 进行屏幕空间转换。
    const vector = new THREE.Vector3();
    vector.project( camera ); 
    
    vector.x = ( vector.x + 1) * width / 2;
    vector.y = - ( vector.y - 1) * height / 2;
    vector.z = 0;
    

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2017-08-08
      • 2021-06-15
      • 1970-01-01
      • 2018-04-10
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      相关资源
      最近更新 更多