Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
前言:
在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的坐标值是整数,所以计算过程中遇到小数会进行四舍五入。