IP76.RU Графика. Математика. Delphi.
103 subscribers
101 photos
2 files
151 links
Алгоритмы, исходники, теория, GDI, GDI+, D2D
Download Telegram
Трюки с формой 2.1: Edit в заголовке окна

Не являюсь поклонником запихнуть что-нибудь в заголовок, но аргумент «жаль столько места пропадает» принимаю и поддерживаю. Поэтому статья про то, как разместить компоненты в заголовке, не теряя AeroSnap, не имитируя заголовок панелью, не подменяя системных кнопок окна.
Работает на Windows 10 и выше.
Исходники Delphi XE7, XE12

Читать тут...
🔥10👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Тёмная тема Windows в Delphi

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

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

Трюки с формой 2.2.2: Тёмная тема Windows в Delphi XE7
🔥4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Матрицы аффинных преобразований в пространстве

Дополнил справочник матрицами для 3D.
Исходники прилагаются.

Матрицы аффинных преобразований в пространстве аналогичны матрицам на плоскости с той лишь разницей, что добавляется ещё одна координата. Соответственно, матрицы становятся размером 4✕4 и их... Читать далее >>

❗️❗️❗️
Оказывается, на мобильных устройствах, телега открывает ссылки в собственном браузере, и в нём вместо формул надпись "Latex formula". Чтобы увидеть формулы, надо в "тележном" браузере ткнуть в три точки справа сверху, выбрать самый верхний пункт "Открыть в браузере" и все формулы покажет.
🔥7👍2
WaveFront OBJ-файл: Описание

Файл WaveFront OBJ хранит данные для построения 3D-модели. Если хотим работать в 3D, а мы хотим, надо уметь читать этот формат. В статье представлена необходимая справочная информация для построения 3d-модели.

Эти данные мне были нужны для написания читалки obj-файла. Постараюсь в скором времени выложить. На этот раз без исходников, но, надеюсь, с полезной информацией. А исходники скоро будут )))
🔥10👍2
WaveFront OBJ-файл: Загрузчик 3D-модели

Сделал загрузчик 3D-модели из OBJ-файла. Всё оформлено одним модулем. Ничего стороннего не используется. Просто подключаем и пользуем.

Исходники прилагаются.

Статья тут...
🔥9👍4
Smooth-Minimum operator

Сегодня поделились шикарной статьёй.
Smooth-Minimum operator — это оператор в компьютерной графике, который позволяет сглаживать и объединять формы. Помогает создавать непрерывные поверхности, объединяя отдельные элементы.

https://iquilezles.org/articles/smin/
🔥9
Маркус Бейкер, 110 формул для нахождения площади плоского треугольника

Возник недавно разговор, что формул для площади треугольника есть на самом деле штук восемь-десять, ...надцать. Но я ж помню, что один товарищ в 19-м веке собрал их что-то около сотни. Пришлось настырно гуглить. Редкий экземпляр оказался. Между тем, теперь он есть, лежит в справочниках, можно ознакомиться, ничего не качая.

Дополнительно: одна интересная беседа по поводу нахождения площади треугольника и критика некоторых формул Бейкера (номера 20, 63, 80, 94).

Заставку придумал Recraft. С тех пор он очень сильно поумнел, похорошел и подорожал...
🔥7👍3
Шпаргалка: Основные формулы площади треугольника

Небольшая шпаргалка по основным формулам нахождения площади любого треугольника.
Обозначения повторяют описание из предыдущего поста. Все формулы, кроме координат, можно найти в справочнике Бейкера (38, 48, 1, 50, 73, 5)
Возможно, если время позволит и будет ваша заинтересованность, сделаю аналогичное для прямоугольного, равнобедренного и равностороннего треугольников.
🔥7
Шпаргалка: Основные формулы площади прямоугольного треугольника
🔥6👍2
Поздравляю всех с наступающим Новым Годом!

Справочник: Формулы площади треугольника

Закругляемся с темой треугольников. Сделал такой вот справочник основных формул нахождения площади треугольника, включая прямоугольный, равнобедренный и равносторонний. Со схемами и выводами.

Отдельно шпаргалки:
Произвольный треугольник (jpg)
Прямоугольный треугольник (jpg)
Равнобедренный треугольник (jpg)
Равносторонний треугольник (jpg)
Сводная шпаргалка (jpg) (та, что на картинке, только больше в два раза)
Интерактивная шпаргалка (pdf) (кликаем на формулу, приходим к выводу формулы) Внимание! На телефонах и планшетах скорее всего ссылки внутри PDF не будут работать! Правда, у меня на планшете работает.

Посмотреть справочник

❗️❗️❗️ На мобильных устройствах, телега открывает ссылки в собственном браузере, и в нём вместо формул надпись "Latex formula". Чтобы увидеть формулы, надо в "тележном" браузере ткнуть в три точки справа сверху, выбрать самый верхний пункт "Открыть в браузере" и все формулы покажет.
🔥13
This media is not supported in your browser
VIEW IN TELEGRAM
Простой пример анимации

В последнее время был беспощадно руган за сложность исходников. Вот максимально простой исходник для такой вот анимашки.
Тут три слоя - ёлки, сугробы (за которые можно спрятать Гринча), и бодрый Дед.
Дед - спрайты. Сугробы - png с альфой. Ёлки - bmp.
Всё очень просто, без GDIPlus, без Direct2D, только Canvas.

Исходник (751 Кб) Delphi XE7
Прога (1.43 Мб)
🔥10
Тождество Никомаха и 2025

Тождество Никомаха - теоретико-числовое утверждение о том, что сумма кубов первых n натуральных чисел равна квадрату суммы первых n натуральных чисел:

1³ + 2³ + 3³ + ... + n³ = (1 + 2 + 3 + ... + n)²

Таким образом:
1³ + 2³ + 3³ + 4³ + 5³ + 6³ + 7³ + 8³ + 9³ = 2025
(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9)² = 2025
45² = (20+25)² = 2025

Наблюдение не моё ))) Поделились...
👍7🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Пример использования AlphaBlend

Как выяснилось, есть определённые вопросы, связанные с динамическим формированием альфа-канала. Вот пример, где всё рисуется исключительно AlphaBlend'ом. Альфа-наложение используется как статическое - одно значение на всю картинку, так и динамическое - формирование альфа-градиента.
Заодно, пример масштабирования через эту функцию. Можно посмотреть, как изменится скорость отрисовки при максимизированном окне.
Галка IsRight - работа с альфой более правильная, вид станет немного другой
Галка Crazy - станет истерить.
Описание функции AlphaBlend.
Как AlphaBlend смешивает цвета.

Исходник (2.6 Мб) Delphi XE7
Прога (3.0 Мб)
🔥10👍1
Маркус Бейкер. Скромный герой

Не так давно опубликовал сборник формул нахождения площади треугольника доселе никому неизвестного Маркуса Бейкера. Теперь это не так. Теперь ещё как известного!
Данил Близнец провёл замечательное скрупулёзное исследование и составил жизнеописание нашего героя. Приглашаю ознакомиться: Маркус Бейкер и его коллекция формул для площади треугольника.

И да, может быть кто-то скажет, у нас тут не исторический кружок. Но быть дотошным занудой в нашем деле, это очень приветствуется. Данил, спасибо, что закончил картину. 👍
👍8
OpenGL: Сглаживание краев. ARB-Multisample

Логичное развитие темы с 3D-моделью obj-формата. Теперь её надо отобразить в OpenGL, посмотреть, правильно ли прочитана модель из файла.
Модель прочитана правильно, но при отображении возникла проблема со ступенчатыми краями. Безусловно эстетическая, но сильно бесящая. Из-за которой двигаться дальше было нельзя никак.
Пришлось решать.
Ознакомиться как...
🔥6👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Другой алгоритм пламени

Давно ничего не придумывал не по работе. А тут появилось немного времени, и кто-то меня просил подумать про то, как сделать огонь, например, для факела или очага. Вот, мысли по этому поводу.

Исходник очень минималистичен и прост.
Пламя строится на путях, построенных на кривых Безье. Для закраски используется градиентная кисть сложной формы.
GDI+

Исходник (59 Кб) Delphi XE7
Прога (903 Кб)
🔥8🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Запоминаем таблицу синусов и косинусов навсегда )))
Поделились видео (youtube), где женщина лихо воспроизводит таблицу значений.
Такого метода не знал, был в восхищении, нашел вот такую интерпретацию, чтобы не заходить никуда.
🔥7
Ада Лавлейс - первый программист в истории человечества. Этот факт меня всегда восхищал 🔥

С праздником, милые дамы! 🌹🌹🌹

5 гениальных женщин-программистов и их вклад в развитие IT

До 1984 года женщин-программистов было больше, чем мужчин: 6 удивительных фактов о женщинах в IT
🔥7
Получение повёрнутого TBitmap средствами Windows GDI

История такая. Спросили, нет ли у меня готового исходника для поворота картинки. А у меня есть куча всего понаписанного, но не опубликованного. То времени нет, то азарт кончился. Поэтому, вот модуль, который получает повёрнутый битмап двумя способами. Вдруг пригодится ещё кому-нибудь. Без экзотики, чистый Win GDI:
1) Аффинные преобразования поворота
2) Использование API функции PlgBlt.

utlRotatePicGDI.zip
🔥12👍1
Дожили... Теперь 22 апреля - День Старого Программиста.
Старого, Карл! Раньше степень древности не обозначали.
Всех программистов сердечно поздравляю 🍾🤟🥳
А особенно выпускников специальности 2204.

День старого программиста — неофициальный профессиональный праздник, который отмечается ежегодно 22 апреля. Он возник среди советских и российских программистов, обучавшихся по специальности с кодом 2204 — «Программное обеспечение вычислительной техники и автоматизированных систем». Число 2204 символически интерпретируется как 22.04, то есть 22 апреля.

https://dzen.ru/a/aAeTmz3O9Q32Qz9W
👍7🔥5
Подключаем DeepSeek к Delphi
Купить API Key проблематично, в списке возможных помощников Delphi этой нейронки нет, а попробовать хочется. Поэтому:

1. Надо закачать себе DeepSeek. Инструкция. Ничего не смотрим, сразу листаем на пункт "5. Продвинутый способ: скачать Дипсик на компьютер".
2. По ссылке в этом пункте качаем и ставим LM Studio. Запускаем, идём в обзор моделей и выбираем DeepSeek Coder V2 Lite (10.4 Gb 😱) и качаем. Это необязательно, можно и на базовой, но он хотя бы про Delphi знает.
3. Из tray-меню студии запускаем сервер.
4. В Delphi опциях выбираем настройки Smart CodeInsight, включаем его, выбираем ChatGPT, указываем BaseURL=http://127.0.0.1:1234/V1 и Api key = not-needed. Из списка моделей выбираем deepseek-coder-v2-lite-instruct. Остальное на свой вкус.

Помощник так себе, но, думаю, найдутся желающие поэкспериментировать.
🔥5👍2🤔2