考虑下图:
我有关于两条线的中心点、它们之间的角度以及两条线的长度的信息。
问题是从底线的末端开始画一条弧线并接触上面的斜线(如下所示的方式):
/
/
/
/.
/ .
/___.
我看到了Qt的这些画弧功能:http:
//qt-project.org/doc/qt-5.1/qtgui/qpainter.html#drawArc
这些函数需要一个矩形作为参数,而我没有。
我应该如何使用这些函数来绘制如上所示的弧线?
考虑下图:
我有关于两条线的中心点、它们之间的角度以及两条线的长度的信息。
问题是从底线的末端开始画一条弧线并接触上面的斜线(如下所示的方式):
/
/
/
/.
/ .
/___.
我看到了Qt的这些画弧功能:http:
//qt-project.org/doc/qt-5.1/qtgui/qpainter.html#drawArc
这些函数需要一个矩形作为参数,而我没有。
我应该如何使用这些函数来绘制如上所示的弧线?
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 计算线之间的角度。