IP76.RU Графика. Математика. Delphi.
103 subscribers
101 photos
2 files
151 links
Алгоритмы, исходники, теория, GDI, GDI+, D2D
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Direct2D: Эффект точечного рассеяния освещения

Этот эффект использует альфа-канал в качестве карты высоты и освещает изображение точечным источником света.
Внутри эффекта есть много интересных параметров, эффект непростой.
Описание эффекта.

В проге:
Z - высота источника свет.
No Effects - если поставить галку, покажет изображение, на котором всё строится.
Курсор мыши - точечный источник света. Если хотите переместить источник освещения за пределы окна, делайте это с нажатой левой кнопкой мыши. Если снять галку с Free Mouse, источник света будет двигаться только с зажатой левой кнопкой мыши.
По правой кнопке можно вставить любую картинку.

Исходники картинок: minimalism, trust your instincts, who are you.

Исходник (418 Кб) Delphi XE7
Прога (1.28 Мб)
🔥10👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Direct2D: Эффект точечного освещения с сохранением цвета

Тот же самый эффект, что в предыдущем посте, но с сохранением цветов исходного изображения.
Как видно, картинка становится как будто трехмерной для освещения.

Исходник (1.32 Мб) Delphi XE7
Прога (2.06 Мб)
🔥8👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Создаём и рисуем молнию. GDI+

Давно хотел смастерить удар молнии. Хотелось сделать что-то апокалиптическое, с нависающими тучами, чтобы вспышками из предыдущих постов освещало небо. Но пообщавшись с человеческим дитёнышем, решил, что обо мрачном как-нибудь потом.

Идея подчерпнута тут: https://drilian.com/2009/02/25/lightning-bolts/

Исходник (188 Кб) Delphi XE7
Прога (1.07 Мб)

За синюю-красную точки можно таскать. Если поставить галку на Timer, генерация молний будет производиться всё время. Увеличивая Count, увеличиваем тем самым максимально возможное количество молний. Draw As Curve - молнии приобретут плавные изгибы.
🔥11
Привет всем!
Давайте, может, расширим возможности общения? Частично переберёмся в группу? А то меня спрашивают в частном порядке, предлагают ответ опубликовать, а истории вопроса не видно. Размер поста ограничен, а так может польза будет.
Появляется возможность задавать вопросы друг другу, делиться открытиями и достижениями )))

https://t.me/+po6LipjFma85MWQy
🔥6
IP76.RU Графика. Математика. Delphi. pinned «Привет всем! Давайте, может, расширим возможности общения? Частично переберёмся в группу? А то меня спрашивают в частном порядке, предлагают ответ опубликовать, а истории вопроса не видно. Размер поста ограничен, а так может польза будет. Появляется возможность…»
Друзья, всем привет!
Хочу познакомить с любопытным каналом:
https://t.me/x117_lab_geom
Основная тематика - геометрия, используемый язык программирования - Python. Уже зацепился за одну задачу, решил по своему. Когда-нибудь, может быть, сделаю статью.
👍2👌1
Трюки с формой 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