vector<Point2d> 详解
2016-01-28 11:27
302 查看
vector<Point2d>这东西让我找了好久,网上介绍vector的东西很多,但是对于数据类型时Point2d、Point2i、Point2f这样的资料却很好。
先来介绍一下基本概念:
Point2i——表示它保存的数值时int类型咯;
Point2f——float
Point2d——double
在此我将根据自己项目中用到的东西加以说明,当然用我最喜欢的手法:实例,来说明问题咯。
例:如何将得到的“图像矩形边框左上角坐标及它的宽和高”保存在centers(保存图像边框的中心点坐标)中。
特别说明:.br()表示保存(x+width, y+height)
.tl():表示保存(x,y)
(r.br() + r.tl())*0.5 恰好等于矩形边框的中心点
那么,如何单独操作一个坐标中的x,y呢?
还是用上面的例子:
好了,你可以尽情的操作了,,,
先来介绍一下基本概念:
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++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性