• 6391阅读
  • 1回复

QLineF的angle函数 [复制链接]

上一主题 下一主题
离线earctan
 

只看楼主 倒序阅读 楼主  发表于: 2009-06-08
最近在写一个旋转GraphicsItem的小程序
用到了,QLineF的angle函数来得到需要旋转的角度值。

发现了:
QLineF的rotate函数其实有两种重载形式, 但是Assistant上只写了一种如下(也许我不够仔细)

qreal QLineF::rotate() const
另一种是
qreal QLineF::rotate(QLineF ) const

第一种是基于三点钟方向为比较对象,返回正、负与零。
而第二种,由于assistant上没有。但是我测试后发现似乎没有返回负值。造成的后果是一个方向旋转正常,另一个方向不正常

经过几经尝试,我采用了以下用法来解决问题:
        QLineF oldLine(ptCenter, ptOld);
        QLineF newLine(ptCenter, ptNew);
        
        qreal angle = oldLine.angle()-newLine.angle();
        if (angle>=0)
            rotate(newLine.angle(oldLine));
        else
            rotate(-newLine.angle(oldLine));

不知道还有没有好的方法,请高手指教。
离线mmmou2000
只看该作者 1楼 发表于: 2009-06-08
恩 qreal QLineF::angleTo ( const QLineF & line ) const 可能符合你的需求
快速回复
限100 字节
 
上一个 下一个