Увеличение и уменьшение масштаба по центру курсора мыши в 2D с помощью ImGUIC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Увеличение и уменьшение масштаба по центру курсора мыши в 2D с помощью ImGUI

Сообщение Anonymous »

У меня есть 2D-холст, используемый в контексте ImGUI, для которого требуются функции масштабирования и панорамирования.
В настоящее время функция панорамирования работает нормально. Однако функция масштабирования масштабируется, но результат не центрируется вокруг местоположения курсора мыши.
У меня есть следующие три метода, которые должны работать вместе:

Код: Выделить всё

void Canv::HandleInput(const ImVec2& canvasPosition, const ImVec2& canvasSize) {
canvasPosition_  = canvasPosition;
canvasSize_= canvasSize;

ImVec2 mousePosition = ImGui::GetMousePos();

if (ImGui::IsMouseDragging(ImGuiMouseButton_Left)) {
const auto mouse_delta = ImGui::GetIO().MouseDelta;
pan -= ImVec2(mouse_delta.x, -mouse_delta.y) / (zoom * units_per_pixel);
}

// Problematic section   

Подробнее здесь: [url]https://stackoverflow.com/questions/79322720/zoom-in-and-out-centered-about-the-mouse-cursor-in-2d-using-imgui[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»