2013-10-05 145 views
0

請考慮下圖:如何用Qt繪製弧線?

我有關於兩條線的中心點,兩者之間的角度以及兩條線的長度的信息。

問題是繪製一個起弧在底部線的端部和接觸上述傾斜線(下面示出的方式)

/
    /
/
    /. 
/. 
/___. 

只見這些弧繪製的Qt的功能:
http://qt-project.org/doc/qt-5.1/qtgui/qpainter.html#drawArc

這些功能需要一個矩形作爲參數,因爲我沒有任何。

我應該如何使用這些函數來繪製如上所示的弧?

+0

您需要先計算邊界矩陣。 –

回答

1
QPointF O; // intersection of lines 
QPointF B; // end point of horizontal line 
QPointF A; // end point of other line 

float halfSide = B.x-O.x; 
QRectF rectangle(O.x - halfSide, 
       O.y - halfSide, 
       O.x + halfSide, 
       O.y + halfSide); 

int startAngle = 0; 
int spanAngle = (atan2(A.y-O.y,A.x-O.x) * 180/M_PI) * 16; 

QPainter painter(this); 
painter.drawArc(rectangle, startAngle, spanAngle); 

您必須計算邊界矩形,而不是使用atan的行之間的角度。

+0

對,這是比我更優雅(即詳細)的答案,謝謝。 :) – lpapp