首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt:在QMap中查找最近的QVector3D

Qt:在QMap中查找最近的QVector3D
EN

Stack Overflow用户
提问于 2016-11-22 16:06:10
回答 1查看 261关注 0票数 3

我有一个这样的QMap:

代码语言:javascript
复制
"1" (0.183,-0.232,0.747)
"2" (1.232, 1.322,-0.123) etc.

我需要一个函数,它的输入是一个QVector3D,哪个输出是最接近输入向量的关键字。

例如:

代码语言:javascript
复制
InputVector(0.189,-0.234,0.755) -> Output: "1"

有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-22 16:31:54

只需迭代地图并检查距离:

代码语言:javascript
复制
int getClosestKey(const QVector3D & ref, const QMap<int, QVector3D> & map)
{
   int closestKey = -1;
   double minDistance = std::numeric_limits<double>::max();
   for (auto itr = map.constBegin(); itr != map.constEnd(); ++itr)
   {
      double d = ref.distanceToPoint(itr.value());
      if (d > minDistance)
         continue;

      closestKey = itr.key();
      minDistance = d;
   }

   return closestKey;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40736645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档