Почему система координат PyGame имеет свое начало в верхнем левом углу?

Я использую PyGame некоторое время, и мне пришлось сделать преобразования координат, чтобы изменить нормальную систему координат, используемую в математике (с ее началом в левом нижнем углу), на систему координат PyGame (с ее началом в левом верхнем углу). Я нашел этот пост очень полезно для этого.

но мне интересно, почему PyGame использует эту нечетную систему координат?

1 ответов


Это не просто PyGame - это старое Соглашение для графических дисплеев. Многие API-интерфейсы позволяют переопределять и выбирать собственное соглашение, но даже тогда они сопоставляются с этим соглашением верхнего левого угла в фоновом режиме.

происхождение конвенции легко увидеть на старых ЭЛТ-дисплеев. Растровое сканирование для каждого кадра шло сверху вниз, при этом каждая строка сканировалась слева направо. Поскольку сканирование было выполнено таким образом, сигнал был отправлен таким образом, а буфер пикселей в память была организована таким образом, чтобы позволить аппаратному обеспечению реализовать относительно простое и эффективное линейное сканирование памяти для каждого кадра.

с ЖК-дисплеями и другими новыми технологиями отображения я уверен, что конвенция это только по историческим причинам - наследие предположительно произвольного решения в какой-то момент о том, как растр должен сканировать изображение для телевизионных сигналов и ЭЛТ много десятилетий назад.