Qt 绘图坐标系转换
先上一段代码,简单的画了个实心矩形
QPainter paint(this);
paint.setBrush(Qt::yellow);
paint.drawRect(0.0, 0.0, 100, 100); //绘制原点为(0.0,0.0),长宽为100的矩形
效果如图:
现在说到绘图内的坐标系转换,Qt可用translate方法变换坐标原点,函数声明为:
void QPainter::translate(const QPointF &offset)
参数offset为新的坐标原点,原点可精确到小数;
void QPainter::translate(const QPoint &offset)
参数offset为新的坐标原点,原点只能精确到整数;
void QPainter::translate(qreal dx, qreal dy)
参数dx为新的坐标原点x,dy为新的坐标原点y,类型为qreal,即为double。
值得一提的是在转换坐标原点前需要先调用save方法保存当前坐标系原点,再转换坐标原点后需调用restore方法恢复之前保存的坐标系。如下代码:
paint.s