例说qt的QLineF::angle() 函数

QlineF::angle()函数在官方文档中如下定义:

The angles are measured counter-clockwise from a point on the x-axis to the right of the origin (x > 0).

从X轴正方向沿逆时针转动,直到与QLineF(p1, p2)平行,转过的角度,就是angle()的返回值。其中,QlineF的指向是从p1指向p2.

 看下面的界面:

矢量\overrightarrow{P1P2}返回的角度是0,因为它与x轴正方向平行。

第二个例子:

由于Qt的世界里,Y轴指向屏幕下方,所以(1,1)出现在四个象限的右下。显然,从X轴正方向要沿逆时针转动315度才能与之平行。

第三个例子(不再解释了,原因同第二个例子):

 最后附上代码(on_pushButton_clicked()函数):

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    double dx1, dy1, dx2, dy2;
    dx1 = ui->p1x->value();
    dy1 = ui->p1y->value();
    dx2 = ui->p2x->value();
    dy2 = ui->p2y->value();

    QLineF lnef(QPointF(dx1, dy1), QPointF(dx2, dy2));
    ui->label->setText(QString().setNum(lnef.angle()));
}

void MainWindow::on_pushButton_2_clicked()
{
    double dLen = ui->dBoxLen->value();
    double dAngle = ui->dBoxAngle->value();

    QLineF lnef = QLineF::fromPolar(dLen, dAngle);

    ui->label_3->setText(QString("p1 = %1,%2; p2 = %3,%4").arg(lnef.p1().x()).arg(lnef.p1().y()).arg(lnef.p2().x()).arg(lnef.p2().y()));
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值