0

谁能解释一下这段代码背后的逻辑?

   pt1.x = cvRound(x0 + 1000*(-b));
   pt1.y = cvRound(y0 + 1000*(a));
   pt2.x = cvRound(x0 - 1000*(-b));
   pt2.y = cvRound(y0 - 1000*(a));
4

2 回答 2

2

您有一个由 定义的点x0, y0。您现在正在创建另外两个点对象,一个位于原始点(-b*1000, a*1000),一个位于(b*1000, -a*1000)相对于原始点的位置。大概1000是为了解决比例问题,因为值ab与点的比例不同x0, y0

于 2010-07-08T15:24:10.463 回答
1

它看起来像a并且b是用于pt1在一个方向(向内或向外)和pt2相反方向移动的阈值。

也许它们被用来增加/减少矩形的面积以进行边界检查?

于 2010-07-08T15:21:16.513 回答