2009-10-08 3 views
0

Я создал свой собственный класс NSOpenGLView, прямо сейчас данные, которые я хочу отобразить с инвертированной системой координат.Как инвертировать систему координат в NSOpenGLView

Происхождение начинается в нижнем левом углу. Я хотел бы изменить его так, чтобы координата начиналась в верхнем левом углу.

Как перевернуть представление/установить новую систему координат.

ответ

0

Мои навыки OpenGL довольно слабы, но я считаю, что вы можете использовать функцию glViewport, чтобы переместить начало в верхний правый. Тогда вам, вероятно, придется использовать все отрицательные числа для всего экрана. Затем вы можете использовать glRotate для использования всех положительных чисел. Я на самом деле не пробовал это, но посмотрю, что с ним можно сделать.

glViewPort(0.0, -height, width, height); 
glRotatef(180.0, 1.0, 0.0, 0.0); 
+0

Я попробовал ваш код с \t glViewport (0.0, - [SELF окаймляет] .size.height, [сама оценка] .size.width , [self bounds] .size.height); \t glRotatef (180,0, 1,0, 0,0, 0,0); И это не работает. Я изменил его на \t glRotatef (180, [self bounds] .size.width/2, [self bounds] .size.height/2, 0); и он поворачивает поток только на 90 градусов. Я думаю, что я собираюсь попробовать и отменить yuv feed buffer для учета инверсии экрана – ReachConnection

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