Я хотів би запропонувати альтернативу добре продуманій відповіді Девіда Постілла. У своїй відповіді він підійшов до питання про те, як пікселі є квадратними, як саме підказує назва. Однак він зробив дуже проникливий коментар у своїй відповіді:
Дехто стверджує, що вони ніколи не є квадратними ("Піксель - це точковий зразок. Він існує лише в точці.").
Ця позиція насправді може породити зовсім іншу відповідь. Замість того, щоб концентруватися на тому, чому кожен піксель є квадратом (чи ні), він може зосередитись на тому, чому ми схильні організовувати ці точкові вибірки в прямокутні сітки. Насправді це було не завжди так!
Для того, щоб зробити цей аргумент, ми збираємось відтворювати назад і назад між трактуванням зображення як абстрактними даними (наприклад, сіткою точок) та їх реалізацією в апараті. Іноді один погляд є більш значимим, ніж інший.
Для початку давайте повернемося досить далеко назад. Традиційна кінозйомка взагалі не мала «сітки», що є однією з причин, чому фотографії завжди виглядали настільки чіткими порівняно із сучасними цифровими. Натомість у неї було "зерно", яке було випадковим розподілом кристалів на плівці. Це було приблизно рівномірно, але це був не приємний прямолінійний масив. Організація цих зерен виникла в процесі виробництва плівки, використовуючи хімічні властивості. Як результат, фільм насправді не мав до нього «напряму». Це було просто 2-х розбризкування інформації.
Швидкий перехід до телевізора, зокрема старих скануючих ЕПТ. CRT потребували чогось іншого, ніж фотографії: вони повинні були вміти представляти їхній вміст як дані. Зокрема, це повинні бути дані, які можуть передаватись аналогово по дроту (як правило, як постійно змінюється набір напруг). Фото було 2d, але нам потрібно було перетворити його на 1d структуру, щоб вона могла просто змінюватися в одному вимірі (часі). Рішення полягало в тому, щоб нарізати зображення лініями (не пікселями!). Зображення було закодовано рядок за рядком. Кожен рядок являв собою аналоговий потік даних, а не цифровий вибірки, але лінії були відокремлені один від одного. Таким чином, дані були дискретні у вертикальному напрямку, але безперервні в горизонтальному напрямку.
Телевізори повинні були надавати ці дані за допомогою фізичних люмінофорів, а кольоровий телевізор потребував сітки для поділу їх на пікселі. Кожен телевізор міг це робити по-різному в горизонтальному напрямку, пропонуючи більше пікселів або менше пікселів, але вони повинні були мати однакову кількість ліній. Теоретично вони могли б змістити будь-який інший ряд пікселів, саме так, як ви пропонуєте. Однак на практиці це було не потрібно. Насправді вони пішли ще далі. Було швидко зрозуміло, що людське око керує рухом таким чином, щоб вони насправді лише надсилали лише половину зображення на кожен кадр! На одному кадрі вони надсилатимуть непарні нумеровані рядки, а на наступному кадрі - надсилати парні рядки і зшивати їх разом.
З цього часу оцифрування цих переплетених зображень було трохи хитрістю. Якби у мене було 480 лінійних зображень, я фактично маю лише половину даних у кожному кадрі через переплетення. Результат цього дуже помітний, коли ви намагаєтесь побачити, як щось швидко переміщається по екрану: кожен рядок тимчасово зміщується на 1 кадр від іншого, створюючи горизонтальні смуги у швидко рухаються речах. Я згадую про це, тому що це досить кумедно: ваша пропозиція зміщує кожен другий рядок у сітці на половину пікселя вправо, в той час як переплетення змінює кожен другий рядок у сітці вдвічі!
Відверто кажучи, простіше зробити ці приємні прямокутні сітки для речей. Не маючи технічних причин зробити щось краще, ніж це, воно застрягло. Потім ми потрапили в епоху комп’ютера. Комп'ютери, необхідні для генерування цих відеосигналів, але не мали аналогових можливостей виписати аналогову лінію. Рішення було природним, дані були розділені на пікселі. Тепер дані були дискретні як по вертикалі, так і по горизонталі. Залишилося лише вибрати, як зробити сітку.
Виготовлення прямокутної сітки було надзвичайно природним. По-перше, кожен телевізор там уже робив це! По-друге, математика для малювання ліній на прямокутній сітці набагато простіша, ніж малювати їх на шестикутній. Ви можете сказати, "але ви можете намалювати плавні лінії в трьох напрямках на шестикутній сітці, але лише 2 у прямокутній". Однак прямокутні сітки спрощували малювати горизонтальні та вертикальні лінії. Шестикутну сітку можна зробити лише для того, щоб намалювати ту чи іншу. У ту епоху не багато людей використовували гексагональні фігури для будь-яких своїх некомп'ютерних зусиль (прямокутний папір, прямокутні двері, прямокутні будинки ...). Здатність робити плавні горизонтальні тавертикальні лінії значно перевершили значення створення гладких повнокольорових зображень ... особливо якщо врахувати, що перші екрани були однотонними, і пройшло б багато часу, перш ніж гладкість зображень зіграла головну роль у мисленні.
Звідти у вас дуже сильний прецедент прямокутної сітки. Графічне обладнання підтримувало те, що робить програмне забезпечення (прямокутні сітки), а програмне забезпечення орієнтоване на обладнання (прямокутні сітки). Теоретично деякі апаратні засоби, можливо, намагалися скласти шестикутну сітку, але програмне забезпечення просто не винагороджувало її, і ніхто не хотів платити за вдвічі більше апаратного забезпечення!
Цей піст пересилає нас сьогодні. Ми все ще хочемо приємних плавних горизонтальних і вертикальних ліній, але з високими кінцевими екранами сітківки це стає простіше і простіше. Однак розробники все ще навчені мислити з точки зору старої прямокутної сітки. Ми бачимо, що деякі нові API підтримують "логічні координати" і роблять антизшивання, щоб зробити вигляд, що існує повний безперервний 2d простір для гри, а не сітка жорстких 2d пікселів, але це повільно. Зрештою, ми можемо побачити шестикутні сітки.
Ми насправді їх бачимо, тільки не з екранами. У друку дуже часто використовується шестикутна сітка. Людське око сприймає шестикутну сітку набагато швидше, ніж приймає прямокутну сітку. Це пов'язано з тим, як лінії "псевдонім" в різних системах. Шестикутна сітка псевдонімом менш суворим способом, з чим зручніше оці (якщо шестигранної сітці потрібно йти одним рядом вгору або вниз, вони отримують це плавно через діагональний перехід. Прямокутні сітки повинні пропускати, створюючи дуже явна перерваність)