Углубление · Геометрия для программиста ← M10
Углубление · наглядные профессии

Геометрия для программиста.

Каждый пиксель, объект игры и блок интерфейса живёт в координатах, а двигают их преобразования. За графикой, играми, версткой и анимацией стоит школьная геометрия: координаты, векторы и матрицы поворота-масштаба. Покрутите и подвигайте фигуру — это и есть аффинное преобразование, которое программист пишет каждый день.

(x, y)координаты
матрицаповорот·масштаб
векторнаправление
TRANSFORMповорот · масштаб · сдвигаффинное преобразование⌗ """ + ''.join(f'' for y in range(80,321,40)) + ''.join(f'' for x in range(80,321,40)) + """ фигура → матрица → новая фигура
№ 00Идея

Код живёт в координатах

Экран — это координатная плоскость, а всё на нём — точки с координатами. Сдвинуть окно, повернуть спрайт, отмасштабировать интерфейс под экран, оживить анимацию — всё это геометрические преобразования над координатами. CSS‑свойство transform: rotate() scale() translate(), матрица в шейдере, камера в игровом движке — за каждым стоит та же школьная геометрия: координаты Декарта, векторы и матрицы поворота. Программист, который «видит» геометрию, понимает графику и анимацию изнутри, а не как набор магических функций.

CSS transform, матрица шейдера, камера движка — это школьная геометрия в коде. — о геометрии в программировании
⌗
Интерактив

Аффинное преобразование фигуры

Бледная фигура — исходная, золотая — преобразованная. Ползунки задают поворот, масштаб и сдвиг — ровно то, что делает transform. Справа — матрица преобразования.

TRANSFORMкрутите · масштабируйте · двигайтебледная — исходная⌗
—

Поворот и масштаб — это умножение координат на матрицу $\begin{pmatrix} k\cos\theta & -k\sin\theta \\ k\sin\theta & k\cos\theta \end{pmatrix}$, сдвиг — прибавление вектора. Любую цепочку «повернуть, масштабировать, сместить» можно свернуть в одно преобразование — именно так движки и браузеры применяют десятки трансформаций за один проход.

{ }
Инструменты

Геометрический инструментарий кода

Три кита графического программирования.

⊹Координаты

Положение всего на экране — пара или тройка чисел. Расстояния, попадания, столкновения считаются по формуле расстояния (модуль M9).

→Векторы

Направление и скорость, нормали, освещение. Скалярное произведение даёт угол и проверяет видимость грани (модуль M9).

⌗Матрицы

Поворот, масштаб, сдвиг и проекция — всё это матрицы. Камера в 3D — тоже матрица, превращающая мир в картинку на экране.

К ним добавляется вычислительная геометрия: пересечения отрезков и фигур, выпуклые оболочки, триангуляция, построение сечений (привет модулю M7). Игровая физика, редакторы карт, САПР, визуализация данных — всё это прикладная геометрия в коде.

№ 04Где

Где это работает каждый день

Геймдев и графика: спрайты, камеры, шейдеры, столкновения — сплошные координаты и матрицы. Фронтенд и вёрстка: CSS‑трансформации, адаптивные сетки, анимации, SVG. 3D и САПР: модели, сечения, развёртки, проекции — прямое продолжение начертательной геометрии. Визуализация данных: оси, проекции многомерных данных, графы. Машинное обучение: вектора и расстояния в пространстве признаков. Везде, где есть «экран» и «движение», программисту катастрофически полезно видеть геометрию, а не только вызывать готовые функции — тогда баги в трансформациях и проекциях становятся очевидными.

⌗Коротко

Координаты + векторы + матрицы = графика, игры, вёрстка, 3D, визуализация и ML. Наглядная геометрия превращает «магические функции» в понятный инструмент.

№ 05Связи

Куда дальше