我需要从它的 4 个角定义一个旋转的矩形。旋转的矩形由中心点、大小对(宽度、高度)和角度定义。
如何确定哪个尺寸是高度,哪个是宽度?
宽度不是最水平边的长度,是吗?例如,如果角度大于 90°,它会交换吗?
height应该是最大的一边,width是另一条边,angle是顺时针方向的旋转角度(以度为单位)。
否则,您可以得到一个等效的矩形,将height和width交换,旋转 90 度。
您可以使用minAreaRect来查找RotatedRect:
vector<Point> pts = {pt1, pt2, pt3, pt4}
RotatedRect box = minAreaRect(pts);
// Be sure that largest side is the height
if (box.size.width > box.size.height)
{
swap(box.size.width, box.size.height);
box.angle += 90.f;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5115 次 |
| 最近记录: |