簡體   English   中英

Qt:在QMap中找到最接近的QVector3D

[英]Qt: Find closest QVector3D in QMap

我有這樣的QMap:

"1" (0.183,-0.232,0.747)
"2" (1.232, 1.322,-0.123) etc.

我需要一個函數,其輸入是QVector3D,哪個輸出是輸入向量的最接近的鍵。

例如:

InputVector(0.189,-0.234,0.755) -> Output: "1"

任何想法如何解決這個問題?

只需遍歷地圖並檢查距離:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM