Логические и экранные координаты - PullRequest
0 голосов
/ 01 мая 2011

Логическая координата для отображения координат экрана настроена так, чтобы диаграмма, которая имеет экстент от (-5, -4) до (+5, +6) в логических координатах отображается на экране с пикселем координаты от 0,0 до 300, 400. Пользователь нажимает на пиксель 200,300. Что делает это соответствуют в логических координатах диаграммы?

Создаем ли мы матрицу (30x 40y 1)? а затем 200 = 30x => x = 6,67 300 = 40y => y = 7,5 ???

1 Ответ

1 голос
/ 01 мая 2011

Для X вам нужно отображение от (0, 300) до (-5, +5). Поэтому вам нужна линейная функция f (x) такая, что f (0) = - 5 и f (300) = + 5. Вы можете записать это путем проверки как:

f(x) = -5 + [(+5 - -5)/(300 - 0)]x
     = -5 + (10/300)x

Вы можете применить ту же логику тривиально к другой оси.

Эта проблема упрощается тем, что левый верхний угол вашего прямоугольника экрана равен (0,0), но даже если это не так, можно следовать тому же принципу.

...