我有一个坐标和一个角度。现在我想用指定的角度从坐标到一定长度画一条线。我怎样才能做到这一点?有人可以给出任何想法吗?
问问题
5928 次
2 回答
11
Arthur 计算角度的方法是正确的,但实际上,QT 提供了以特定角度绘制线条的内置方法,特别是在header中的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);
}
将线的角度设置为给定的角度(以度为单位)。这将改变线的第二个点的位置,使线具有给定的角度。
角度的正值表示逆时针方向,而负值表示顺时针方向。
零度位于 3 点钟位置。
这个函数是在 Qt 4.4 中引入的。
于 2013-05-21T06:34:50.647 回答
3
假设您的坐标由x
和y
double endx = cos(angle)*length;
double endy = sin(angle)*length;
您的线路将从 (x,y) 变为 (x+endx, y+endy)。
不要忘记您angle
需要以弧度表示,因此如果您以度为单位,例如 0 到 360,请像这样转换它,并使用上面的弧度:
double pi = acos(-1);
double radians = angle / 180.0 * pi;
于 2013-05-21T05:30:00.357 回答