Отображение положения мыши с полноэкранного на меньший кадр - PullRequest
0 голосов
/ 22 апреля 2020

Я застрял при переназначении позиции мыши на новый кадр в течение нескольких дней, и я не уверен, что делать. Я предоставлю изображения, чтобы описать мою проблему. Основная проблема в том, что я хочу щелкнуть объект в моей программе, и программа выделит выбранный мной объект (в трехмерном пространстве). У меня это отлично работает, когда мое приложение работает в полноэкранном режиме. Недавно я начал рендерить мою сцену в меньший кадр, чтобы по бокам у меня были инструменты редактора (например, единица). Вот переход (графически), который я сделал с рабочего на неработающий:

enter image description here

Таким образом, по существу, координаты мыши go от (0,0) до (screenWidth, screenHeight) .. Я хочу отобразить эти координаты в (frameStartX, frameStartY) в (frameStartX) + frameWidth, frameStartY + frameHeight). Я провел некоторое исследование по линейному преобразованию числа, чтобы масштабировать его до нового диапазона, поэтому подумал, что смогу сделать это:

float frameMousePosX = (mousePosX - 0) / (screenWidth - 0) * ((frameWidth + frameStartX) - frameStartX ) + frameStartX ;
float frameMousePosY = (mousePosY - 0) / (screenHeight - 0) * ((frameHeight +frameStartY) - frameStartY ) + frameStartY;

Я предполагал, что это будет работать, но это не так. Это даже не близко. Я действительно не уверен, что делать, чтобы получить эту трансформацию.

Предполагая, что преобразование работает, я бы хотел, чтобы он читал 0,0 в левом нижнем углу frameStart, который (x, y) в прикрепленном изображении, и затем достигал своего пика в правом верхнем углу в рамке сцена.

Любая помощь будет чрезвычайно признательна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...