Qt | 关于点的坐标的使用 QPoint

1,852 阅读1分钟

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的坐标值是整数,所以计算过程中遇到小数会进行四舍五入