Свежие записи

OpenGL: Сглаживание краев. ARB-Multisample

Наконец-то появилось время реализовать ранее написанный obj-ридер в OpenGL. В процессе выяснилось, что с момента моего последнего общения с OpenGL прошло слишком много времени. Совершенно не устраивал результат из-за гадских «ступенек». Мне нужно сглаживание…

WaveFront OBJ-файл: Прочитать 3D-модель

Возникла необходимость читать 3D-модель из Wavefront OBJ-файла. Нормального ридера не нашёл, поэтому решил сделать сам. Есть дельфовый, FMX, со своими ограничениями и причудами. Есть всякие рекомендации в инете, обрывочные и несистематизированные. А хотелось бы иметь законченный модуль, включил и погнали.

Трюки с формой 2.2.2: Тёмная тема Windows в Delphi XE7

Тёмная тема Windows доступна и в XE 7. Но, так как эта версия Delphi создавалась во времена Windows 7, то ни о каком High-DPI, ни о каких тёмных темах, тогда ещё речи не было. Между тем, всё возможно.

Трюки с формой 2.2.1: Тёмная тема Windows в Delphi 12

С возникновением тёмной темы Windows, появились вопросы, почему Delphi её не поддерживает. Вне зависимости от текущей темы, окошки серые, заголовки белые. Давайте попробуем разобраться, что такое тёмное тема в понимании Windows, и как её реализовать в Delphi малыми усилиями.

Трюки с формой 2.1: Edit в заголовке окна

Не являюсь поклонником запихнуть что-нибудь в заголовок, но аргумент «жаль столько места пропадает» принимаю и поддерживаю. Поэтому продолжим размещать элементы редактирования в заголовке. Сейчас будем размещать Edit и ему подобных. Легально, без фокусов.

Контур образа: Алгоритм поиска

Проблема найти контур образа рано или поздно возникает почти у каждого. Когда возникла у меня, этот алгоритм, за неимением лучшего, пришлось придумать. Думаю, есть масса аналогов. Проблема алгоритма поиска контура образа в том, что никто не спешит им делиться.

Алгоритм Рамера–Дугласа–Пойкера

Отличная штука при векторизации растра. Мы нашли контур ромба, но он содержит тысячу точек. Хотя там должно быть всего четыре точки. Четыре, Карл! Вот для того, чтобы точек стало четыре, и может пригодиться алгоритм Рамера–Дугласа–Пойкера.

TBitmap.PixelFormat

PixelFormat

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

Kd-Tree. Быстрый поиск в K-мерном пространстве

Rd-Tree

Если есть гигантский массив данных, то неизбежно встаёт вопрос о быстром поиске данных в нём. Очевидно, что надо строить дерево поиска. Существует множество разновидностей подобных деревьев. Для K-мерных величин, например, 2D или 3D координат, неплохим решением является Kd-Tree.

Контур текста в GDI с антиалиасом

GDI Text Contour

Контур текста довольно полезная штука. Не только в праздничном оформлении, но и во вполне деловой практике. Оконтуренный текст достаточно просто получить в GDI+ и, прямо скажем, совсем не просто в D2D. Однако, как быть в старом добром GDI?