Реализация scalling-а
This commit is contained in:
11
Canvas.h
11
Canvas.h
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
constexpr auto EPS = 1e-9;
|
||||
constexpr auto ZOOM_STEP = 0.05;
|
||||
|
||||
#include <QWidget>
|
||||
#include <QMouseEvent>
|
||||
@@ -54,6 +55,15 @@ public:
|
||||
/// Изменить текущий режим работы
|
||||
void changeMode(Mode newMode);
|
||||
|
||||
/// Увеличить масштаб
|
||||
void zoomIn();
|
||||
|
||||
/// Уменьшить масштаб
|
||||
void zoomOut();
|
||||
|
||||
/// Сбросить масштаб к 100%
|
||||
void zoomReset();
|
||||
|
||||
protected:
|
||||
// Обработчики событий Qt
|
||||
void mousePressEvent(QMouseEvent* event) override;
|
||||
@@ -132,6 +142,7 @@ private:
|
||||
// ====================== Флаги состояния ======================
|
||||
|
||||
bool after_constraint{ false }; ///< Флаг, что только что добавлено ограничение
|
||||
double scaleFactor { 1.0 };
|
||||
|
||||
// ====================== Счётчики ======================
|
||||
|
||||
|
||||
Reference in New Issue
Block a user