QT绘图中屏幕坐标转换为数学笛卡尔坐标

计算机屏幕坐标是左上角为(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();

}

你可能感兴趣的:(c++)