работа с различными системами координат - PullRequest
0 голосов
/ 21 декабря 2009

Так что я много занимаюсь математикой и сталкиваюсь с разными вещами, где координатная плоскость начинается с нуля внизу и поднимается вверх по оси y.

Однако в моей программе все наоборот. Ноль находится вверху экрана и идет вверх, а вы идете вниз по оси Y.

Я имел дело с этим, обновляя мои математические уравнения для компенсации.

Есть ли более простой способ?

Ответы [ 4 ]

2 голосов
/ 21 декабря 2009

Я вижу, вы отметили это с openGL. Я не совсем уверен, что вы делаете здесь, но если вы не поняли, вы можете изменить направление вверх в функции gluLookAt, т.е.

gluLookAt(0.0,0.0,100.0,    // Camera position
    0.0,0.0,0.0,            // Camera direction
    0.0,1.0,0.0);           // Camera up direction

Таким образом, камера будет направлена ​​вверх по оси Z и смотрит на начало координат, а y увеличивает экран.

0 голосов
/ 21 декабря 2009

Вы можете просто преобразовать свои преобразования в уравнениях в набор матриц преобразования.

0 голосов
/ 21 декабря 2009

Любой «более легкий путь» полностью зависит от того, что именно вы делаете. Вы занимаетесь математическим моделированием? 3D рендеринг? Простая настройка графического интерфейса? Если вы делаете много матричных преобразований, вы можете свернуть разницу в масштаб на -1 и перевести высоту страницы. Если вы этого не сделаете, то, возможно, лучшим выбором будет изменение ваших уравнений.

0 голосов
/ 21 декабря 2009

Рассматривать это как масштабное преобразование с отрицательной шкалой Y и свернуть с другими применяемыми преобразованиями? Я предполагаю, что вы делаете 3D-работу и вам нужно выполнить много матричных преобразований 4x4.

РЕДАКТИРОВАТЬ: Ссылаясь на статью Википедии , я думаю, что матрица преобразования будет выглядеть следующим образом:

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