Почему программное обеспечение часто использует обратную систему координат по сравнению с обычной математической системой координат?
Как вы, вероятно, знаете, в C# начало координат (0,0) - это верхний левый угол. Переход вправо и / или вниз рассматривается как +, а переход влево и / или вверх - -. Против этого стоит обычная математическая система координат:
(0,0) = середина плоскости, вверх / вправо = +, вниз / влево = -.
Это немного нелогично и иногда может раздражать, так как мы привыкли (в течение многих лет) использовать обычные математические координаты, и вы должны также пересчитать координаты.
Это фундаментальный недостаток дизайна? И ты привык к этому через некоторое время? А какие другие языки используют другую систему координат, такую как C#?
3 ответа
Это не C#, а дисплей, который использует обратную систему координат, это происходит от дней назад, когда дисплей был нарисован с использованием CRT и изображение было нарисовано сверху вниз, слева направо. Вот почему использование ОС системы координат соответствует этому.
Такие языки, как C#, просто обертывают API базовой ОС, и поэтому C# также использует его.
Математическая графическая плоскость - это виртуальная вещь, которая расширяется во всех направлениях без ограничений.
Экран - это настоящая вещь, которая вообще не может расширяться.
Вместо этого мы используем концепцию прокрутки, и мы привыкли делать это с начальной точки вниз.
Таким образом, концептуально все графические системы используют ту же систему, что и (слева направо и сверху вниз) текстовый блок или страница в книге. Речь идет о том, как мы прокручиваем, чтобы расширить / продвинуть область отображения.
Но это можно определить любым другим способом; в конце концов, например, отрицательные координаты имеют смысл, а не отрицательный номер строки.
Если вам не нравится система координат на экране, вы можете создать методы-обертки, чтобы переназначить координаты любым удобным вам способом.