计算机屏幕坐标是左上角为(0,0),X轴向右,Y轴向下。在绘制图形的时候,很多图形对象存储的坐标是数学上笛卡尔坐标,这个时候需要转换,QT做转换我开始迷茫,后面终于明白了,只要一个函数就搞定了。下面函数就是把屏幕坐标做下角定为(0,0),X轴向右,Y轴向上。此函数后面绘制坐标,就按这个坐标系统来绘制就没有问题了。
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QPen pen;
painter.begin(this);
pen.setColor(Qt::black);
pen.setStyle(Qt::SolidLine);
pen.setWidthF(2);
painter.setPen(pen);
painter.setWindow(0, height(), width(), -1 * height());//设置屏幕左下角(0,Height)为原点(0,0)
painter.drawLine(QPointF(0, 0), QPointF(width()/2, height()/2));
painter.end();
}