В настоящее время функция панорамирования работает нормально. Однако функция масштабирования масштабируется, но результат не центрируется вокруг местоположения курсора мыши.
У меня есть следующие три метода, которые должны работать вместе:
Код: Выделить всё
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]