首页 > 解决方案 > 如果统一给出其他坐标(3 个或更多点),如何在 2d 平面图上找到用户位置?

问题描述

平面图

如果已知 A、B 和 c 的坐标分别为 A(floorpointx1,floorpointy1),B(floorpointx2,floorpointy2) 和 C(floorpointx3,floorpointy3) .D1,D2 和 D3,是否可以找到用户的位置也可以提供。通过所有这些详细信息,我们可以找到用户的位置[User(floorpoint_x,floorpoint_y)]?

float D1 = Vector3.Distance(userposition, PointAPosition);
float D2 = Vector3.Distance(userposition, PointBPosition);
float D3 = Vector3.Distance(userposition, PointCPosition);

标签: unity3darkiteuclidean-distance

解决方案


在我们在评论中讨论之后,我认为您的问题的最佳解决方案是 2D helmert 相似性转换。如果您的楼层地图中有 2 个或更多已知点并在这些点上放置模型/POI,(换句话说:您正在测量 ARKit 坐标系中的坐标!)您可以计算两个坐标系之间的关系,然后您可以将您的用户 ARKit 位置转换为您的平面图坐标系。

相似变换在您的两个坐标系统之间 进行平移旋转缩放。相似变换

在这里您可以找到更多信息和示例,了解 2d helmert 相似性转换的外观:http ://www.geo.itu.edu.tr/dersler/Example%205_2D%20Helmert%20Similarity%20Transformation.pdf 研究文档并查看在第 6-8 页的数字示例中,实施起来应该没有问题。


推荐阅读