您的位置:首页 > 编程语言 > C语言/C++

vector<Point2d> 详解

2016-01-28 11:27 302 查看
vector<Point2d>这东西让我找了好久,网上介绍vector的东西很多,但是对于数据类型时Point2d、Point2i、Point2f这样的资料却很好。

先来介绍一下基本概念:

Point2i——表示它保存的数值时int类型咯;

Point2f——float

Point2d——double

在此我将根据自己项目中用到的东西加以说明,当然用我最喜欢的手法:实例,来说明问题咯。

例:如何将得到的“图像矩形边框左上角坐标及它的宽和高”保存在centers(保存图像边框的中心点坐标)中。

vector<Point2d> centers;
double x = p[0];  //矩形边框左上角的x坐标
double y = p[1];  //矩形边框左上角的y坐标
double w = p[2];  //矩形边框宽度
double h = p[3];	//矩形边框高度
Rect r(x, y, w, h);  //这一步很重要
centers.push_back((r.br() + r.tl())*0.5);//br():(x+width, y+height)   tl():(x,y)


特别说明:.br()表示保存(x+width, y+height)

                .tl():表示保存(x,y)

                (r.br() + r.tl())*0.5 恰好等于矩形边框的中心点

那么,如何单独操作一个坐标中的x,y呢?

还是用上面的例子:

for (int i = 0; i<centers.size(); i++)
{
<span style="white-space:pre">	</span>double a = centers[i].x;//第i个中心点的x坐标
<span style="white-space:pre">	</span>double b = centers[i].y;//第i个中心点的y坐标
}


 

好了,你可以尽情的操作了,,,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++