2013-05-21 57 views
2

我有一个坐标和一个角度。现在我想从坐标画一条直线到指定角度的一定长度。我怎么能做到这一点?有人可以提供任何想法吗?如何在QT中以角度画线?

回答

7

亚瑟的方式计算角度是正确的,但实际上,QT提供的特定的角度引出配线内置的方法,特别是QLineF类的在QLineF标题中的功能:

#include <QLineF> 

void AngleDemo::paintEvent(QPaintEvent *) 
{ 
    QPainter painter(this); 

    painter.setPen(QPen(Qt::black,1)); 

    /* Create the line object: */ 
    QLineF angleline; 

    /* Set the origin: */ 
    angleline.setP1(QPointF(80,80)); 

    /* Set the angle and length: */ 
    angleline.setAngle(45); 
    angleline.setLength(50); 

    /* Draw the line: */ 
    painter.drawLine(angleline); 
} 

online documentation of the setAngle() function

将线的角度设置为给定的角度(以度为单位)。这将改变线的第二点的位置,使得线具有给定的角度。

角度的正值表示逆时针方向,负值表示顺时针方向。

零度位于3点钟位置。

此功能是在Qt 4.4中引入的。

3

假设你的坐标由xy

double endx = cos(angle)*length; 
double endy = sin(angle)*length; 

你的行会从(X,Y)到(X + endx,Y +恩迪)。

不要忘记你的angle需要采用弧度,所以如果你有它的度,如0到360,将其转换这个样子,和使用上面弧度:中

double pi = acos(-1); 
double radians = angle/180.0 * pi; 
+1

谢谢亚瑟。我会检查这一点。 – joki

+0

@joki我有同样的问题,你可以确认,如果这种方法解决了你的问题? – Callat

+1

是@KazRodgers !!这满足了期望! – joki