2012-06-07 3 views
0

У меня есть следующие 2D орфографической проекции, установленных на моем IPad:Как преобразовать экранные координаты в 2D OpenGL координат

  • происхождения в центре дисплея
  • (+ 1, + 1) в верхнем правом углу
  • (-1, -1) в нижнем правом углу
  • Это регулируется соотношение 1,333 аспекта IPAD, с тем Х проходит от -1.33 до +1,33

IPad является пейзаж с кнопкой на левой с экрана со-ords, как это:

  • происхождения в нижнем правом углу
  • (1024,768) в верхнем левом углу

Как сделать Я вычисляю 2D-положение GL, когда пользователь касается экрана? iOS дает мне местоположение экрана, где пользователь постучал.

Т.е., если я коснусь экрана посередине, iOS говорит мне, что я прослушивал (512,384), поэтому его следует преобразовать в (0,0), (1024,768) в (-1,33,1,0) и т. Д.

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

ответ

1

Для экрана с размерами ш и ч, отображения на [-1, -1] ... [1, 1] выглядит следующим образом:

X = 2*x/w - 1 
Y = 1 - 2*y/h 

Для того, чтобы соответствовать соотношение сторон экрана умножить X на w/h.

+0

Piku немного потрудился в своем вопросе. Его координаты x GL являются [-1,33, 133], поэтому отредактируйте X, умножив его на соотношение сторон (1.33). –

+0

@MaticOblak: на экране 1024x768, Вт/ч составляет приблизительно 1,33. –

Смежные вопросы