Система координат SDL, от (0,0) до (ш, ч) или (ш-1, ч-1)? - PullRequest
4 голосов
/ 13 февраля 2011

В последнее время я изучаю OpenGL и SDL, и я немного запутался в системе координат в SDL и glOrtho. Я прочитал несколько уроков о системе координат SDL, в которой говорится, что координаты переходят от (0,0) к (w, h), что для меня не имеет смысла. Если ширина изменяется от 0 до w, это означает, что есть один дополнительный пиксель.

Кроме того, с помощью функции OpenGL glOrtho я видел все примеры, где система координат изменяется на систему, аналогичную SDL, в следующем виде:

glOrtho (0, screenWidth, screenHeight, 0, 1, -1);

Однако не имеет ли смысла делать это вместо этого?:

glOrtho (0, screenWidth-1, screenHeight-1, 0, 1, -1);

Надеюсь, вы, ребята, можете уточнить это для меня, спасибо.

1 Ответ

7 голосов
/ 13 февраля 2011

Вроде того же замешательства, что и начало нового тысячелетия.Я попытаюсь объяснить:

Возьмите лист бумаги с сеткой и отметьте пересечение сетки в качестве источника, то есть 0,0 координаты.Измерьте ширину, скажем, 9 единиц сетки в одном направлении, отметьте ее.Теперь посчитайте количество клеток, которые вы измерили.Позвольте мне проиллюстрировать:

0 1 2 3 4 5 6 7 8 9 <- grid lines; coordinate range
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
|0|1|2|3|4|5|6|7|8| <- cell index/offset

Итак, у вас есть сетка шириной 9, но внутри есть только 9-1 = 8 ячеек (например, пикселей)Диапазоны, которые вы задаете для glOrtho, являются пределами диапазона.

...