微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

屏幕格式的标记位置使用 AR.js

如何解决屏幕格式的标记位置使用 AR.js

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

this.marker.object3D.getWorldPosition(vector);

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

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

解决方法

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

  • 通过 Vector3.project() 将世界空间中的位置转换为 NDC 空间。
  • 使用画布的 widthheight 进行屏幕空间转换。
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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。