Qt | 关于点的坐标的使用 QPoint
前言:
在 Qt 中,点的坐标及其操作用 QPoint 类来表示。QPoint 类可以表示一个平面上整数精度的点坐标,如果想表示浮点类型的点坐标,可以使用 QPointF 类。
可以在标记控件位置时使用坐标点,比如一个控件的左上角位置可以用点的坐标表示;也可以在画线时使用点的坐标表示线的起点坐标和终点坐标。
除了表示点的位置,点的坐标还可以进行一系列操作。
QPoint 相关操作:
定义一个点: QPoint pt(3, 7);
判断一个点的坐标与指定坐标是否相等: if(pt == QPoint(10, 10));
计算两个点之间的距离: int dis = dotProduct(pt1, pt2);//这个函数计算出的是亮点之间距离的平方和,开平方根即为距离,因为 QPoint 类中的坐标值都是整数,开根号可能会出现小数,所以 dotProduct()函数没有开平方根,只计算了平方和。
获取 x 和 y 的值: pt.x(); pt.y();
设置 x 和 y 的值: pt.setX(10); pt.setY(20);
更新坐标值: pt.rx()--; pt.ry()++;//rx()和 ry()既可以获取当前的坐标值,也能自己更新坐标值。
坐标运算: “+”运算;“-”运算;“/”运算;“*”运算;
QPoint p(3, 7);QPoint q(-1, 4);
“+”运算:q += q;//p 变成(2, 11);
“-”运算:p -= q;//p 变成(4, 3);
QPoint p(-3, 10);
“/”运算:p /= 2.5;//p 变成(-1, 4);
QPoint p(-1, 4);
“*”运算:p *= 2.5;//p 变成();
注: QPoint 的坐标值是整数,所以计算过程中遇到小数会进行四舍五入。
版权声明: 本文为 InfoQ 作者【YOLO.】的原创文章。
原文链接:【http://xie.infoq.cn/article/c32b02bbe1f79a1ca85fcd0d0】。未经作者许可,禁止转载。
评论