坐标变换
world coordinates(逻辑坐标)->【世界变换】window coordinates(中间坐标)->【窗口视口变换】device coordinates(物理坐标)
缩放一般用鼠标的滚轮事件来触发QWheelEvent
//—————-缩放———————-
// 缩放的增量
void CView::setZoomDelta(qreal delta)
{
// 建议增量范围
Q_ASSERT_X(delta >= 0.0 && delta <= 1.0,
“InteractiveView::setZoomDelta”, “Delta should be in range [0.0, 1.0].”);
m_zoomDelta = delta;
}
qreal CView::zoomDelta() const
{
return m_zoomDelta;
}
// 放大/缩小
void CView::wheelEvent(QWheelEvent *event)
{
// 滚轮的滚动量
QPoint scrollAmount = event->angleDelta();
// 正值表示滚轮远离使用者(放大),负值表示朝向使用者(缩小)
scrollAmount.y() > 0 ? zoomIn() : zoomOut();
}
// 放大
void CView::zoomIn()
{
zoom(1 + m_zoomDelta);
}
// 缩小
void CView::zoomOut()
{