Почему программное обеспечение часто использует обратную систему координат по сравнению с обычной математической системой координат?

Как вы, вероятно, знаете, в C# начало координат (0,0) - это верхний левый угол. Переход вправо и / или вниз рассматривается как +, а переход влево и / или вверх - -. Против этого стоит обычная математическая система координат:

(0,0) = середина плоскости, вверх / вправо = +, вниз / влево = -.

Это немного нелогично и иногда может раздражать, так как мы привыкли (в течение многих лет) использовать обычные математические координаты, и вы должны также пересчитать координаты.

Это фундаментальный недостаток дизайна? И ты привык к этому через некоторое время? А какие другие языки используют другую систему координат, такую ​​как C#?

3 ответа

Решение

Это не C#, а дисплей, который использует обратную систему координат, это происходит от дней назад, когда дисплей был нарисован с использованием CRT и изображение было нарисовано сверху вниз, слева направо. Вот почему использование ОС системы координат соответствует этому.

Такие языки, как C#, просто обертывают API базовой ОС, и поэтому C# также использует его.

Математическая графическая плоскость - это виртуальная вещь, которая расширяется во всех направлениях без ограничений.

Экран - это настоящая вещь, которая вообще не может расширяться.

Вместо этого мы используем концепцию прокрутки, и мы привыкли делать это с начальной точки вниз.

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

Но это можно определить любым другим способом; в конце концов, например, отрицательные координаты имеют смысл, а не отрицательный номер строки.

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

Другие вопросы по тегам