This media is not supported in your browser
VIEW IN TELEGRAM
Комплексные числа в Delphi
Для работы с комплексными числами в Delphi есть официальный модуль System.VarCmplx. Но он работает только с вариантным типом. Хотелось бы что-нибудь по-вещественней.
В стандартной поставке Delphi, в примерах, есть проект:
...\Samples\Object Pascal\RTL\ComplexNumbers\Win32OperatorOverload.dproj.
В нём есть модуль Vassbotn.Vcl.Complex.pas. Вот в нём всё сделано на Double.
В дополнение:
Превосходная статья: Комплексные числа и геометрические узоры
Не менее превосходная статья: Как нарисовать звезду (и не только) в полярных координатах
В проге жмём Apply. С параметрами разбираемся по ходу пьесы.
Исходник (76 Кб) Delphi XE7
Прога (967 Кб)
Для работы с комплексными числами в Delphi есть официальный модуль System.VarCmplx. Но он работает только с вариантным типом. Хотелось бы что-нибудь по-вещественней.
В стандартной поставке Delphi, в примерах, есть проект:
...\Samples\Object Pascal\RTL\ComplexNumbers\Win32OperatorOverload.dproj.
В нём есть модуль Vassbotn.Vcl.Complex.pas. Вот в нём всё сделано на Double.
В дополнение:
Превосходная статья: Комплексные числа и геометрические узоры
Не менее превосходная статья: Как нарисовать звезду (и не только) в полярных координатах
В проге жмём Apply. С параметрами разбираемся по ходу пьесы.
Исходник (76 Кб) Delphi XE7
Прога (967 Кб)
🔥10👍2
Recraft: Искусственный интеллект в помощь дизайнеру
Это сервис. С помощью ИИ генерируем картинки, логотипы, реалистичные фото. И он бесплатный!!! И у людей пальцы на месте )))
Началось всё с того, что мне прислали ссылку на видео. Интерфейс очень даже френдли. Результат мега-качественный. Видео рекомендуемо к просмотру, так как там инструкция по неочевидным функциям.
Я мгновенно зарегился и залип часа на 3. С трудом оторвался, ибо дела. Очень крутая штука.
Олег, спасибо за наводку )))
Попробовать...
Это сервис. С помощью ИИ генерируем картинки, логотипы, реалистичные фото. И он бесплатный!!! И у людей пальцы на месте )))
Началось всё с того, что мне прислали ссылку на видео. Интерфейс очень даже френдли. Результат мега-качественный. Видео рекомендуемо к просмотру, так как там инструкция по неочевидным функциям.
Я мгновенно зарегился и залип часа на 3. С трудом оторвался, ибо дела. Очень крутая штука.
Олег, спасибо за наводку )))
Попробовать...
🔥4👍1
Динамические массивы
К сожалению, ссылка на статью в этом посте больше недоступна (((
Поэтому, исправляюсь. Статьи на ту же тему от Gun-Smoker:
- Работа с указателями (перевод)
- Параметры типа открытый массив и "array of const"
И пара ссылок по теме:
- Конспект: Динамический массив в Delphi
- Как определить количество ссылок на динамический массив?
К сожалению, ссылка на статью в этом посте больше недоступна (((
Поэтому, исправляюсь. Статьи на ту же тему от Gun-Smoker:
- Работа с указателями (перевод)
- Параметры типа открытый массив и "array of const"
И пара ссылок по теме:
- Конспект: Динамический массив в Delphi
- Как определить количество ссылок на динамический массив?
🔥7
Спиральное заполнение матрицы
Волею судеб, прилетела задачка:
Дано нечетное число N. Заполнить квадратную матрицу размером N*N следующим образом:
01 - 02 - 03 - 04 - 05
16 - 17 - 18 - 19 - 06
15 - 24 - 25 - 20 - 07
14 - 23 - 22 - 21 - 08
13 - 12 - 11 - 10 - 09
Если расширить на любое количество столбцов и строк, то мне видится вот так (рекурсивно):
Волею судеб, прилетела задачка:
Дано нечетное число N. Заполнить квадратную матрицу размером N*N следующим образом:
01 - 02 - 03 - 04 - 05
16 - 17 - 18 - 19 - 06
15 - 24 - 25 - 20 - 07
14 - 23 - 22 - 21 - 08
13 - 12 - 11 - 10 - 09
Если расширить на любое количество столбцов и строк, то мне видится вот так (рекурсивно):
type
TIntegerDynMatrix =
array of TIntegerDynArray;
Int = Integer;
TIntHelper = record helper for Int
function NextValue: Integer;
end;
function TIntHelper.NextValue: Integer;
begin
Inc(Self);
Result := Self;
end;
procedure CalcMatrix(
Start, R, C, Row, Col: Integer;
var A: TIntegerDynMatrix);
var i, dc, dr: Integer;
begin
if (C>=Col) or (R>=Row) then exit;
if Row-1>R then dc:=2 else dc:=1;
if Col-1>C then dr:=2 else dr:=1;
for i:=C to Col-dc do
A[R,i]:=Int(Start).NextValue;
if (dr=2) or (dc=2) then
for i:=R to Row-dr do
A[i,Col-1]:=Int(Start).NextValue;
if dc=2 then
for i:=Col-1 downto C+1 do
A[Row-1,i]:=Int(Start).NextValue;
if dr=2 then
for i:=Row-1 downto R+1 do
A[i,C]:=Int(Start).NextValue;
CalcMatrix(Start,
R+1,C+1,Row-1,Col-1,A);
end;
delphisources.ru
6 простых задач - [ "Начинающим" ] - Все о Delphi - Форум по Delphi программированию
6 простых задач [ "Начинающим" ]
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Визуализация спирального заполнения матрицы
Конечно, руки чесались сделать визуализатор для поста выше.
Всё по честному, отрисовка вызывается при вставке каждого нового значения в матрицу. То есть можно глазами увидеть весь процесс изнутри. Алгоритм тот же, но без хелпера.
Исходник (61 Кб) Delphi XE7
Прога (1.09 Мб) Прога под 64 бита. В 32-х Касперский снова начал параноить.
Конечно, руки чесались сделать визуализатор для поста выше.
Всё по честному, отрисовка вызывается при вставке каждого нового значения в матрицу. То есть можно глазами увидеть весь процесс изнутри. Алгоритм тот же, но без хелпера.
Исходник (61 Кб) Delphi XE7
Прога (1.09 Мб) Прога под 64 бита. В 32-х Касперский снова начал параноить.
🔥7
Лечим AutoCAD
Проблема:
В кои века понадобился AutoCAD. Открываю в нём файл и вижу постоянно выскакивающую фигню, которая на рисунке. Что-либо делать невозможно.
Сломался!
Лечение:
Идём в C:\Windows\System32\drivers\etc\
Открываем любым редактором файл hosts.
Добавляем:
Сохраняем. Запускаем AutoCAD.
Починился!
Подсмотрено:
Используемая лицензия AutoCAD недействительна. Autodesk массово заблокировала пиратские инсталляции
Проблема:
В кои века понадобился AutoCAD. Открываю в нём файл и вижу постоянно выскакивающую фигню, которая на рисунке. Что-либо делать невозможно.
Сломался!
Лечение:
Идём в C:\Windows\System32\drivers\etc\
Открываем любым редактором файл hosts.
Добавляем:
127.0.0.1 ase.autodesk.com
127.0.0.1 ase-cdn-stg.autodesk.com
127.0.0.1 genuine-software2.autodesk.com
Сохраняем. Запускаем AutoCAD.
Починился!
Подсмотрено:
Используемая лицензия AutoCAD недействительна. Autodesk массово заблокировала пиратские инсталляции
🔥4👍3
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 Мб)
Этот эффект использует альфа-канал в качестве карты высоты и освещает изображение точечным источником света.
Внутри эффекта есть много интересных параметров, эффект непростой.
Описание эффекта.
В проге:
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 Мб)
Тот же самый эффект, что в предыдущем посте, но с сохранением цветов исходного изображения.
Как видно, картинка становится как будто трехмерной для освещения.
Исходник (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 - молнии приобретут плавные изгибы.
Давно хотел смастерить удар молнии. Хотелось сделать что-то апокалиптическое, с нависающими тучами, чтобы вспышками из предыдущих постов освещало небо. Но пообщавшись с человеческим дитёнышем, решил, что обо мрачном как-нибудь потом.
Идея подчерпнута тут: https://drilian.com/2009/02/25/lightning-bolts/
Исходник (188 Кб) Delphi XE7
Прога (1.07 Мб)
За синюю-красную точки можно таскать. Если поставить галку на Timer, генерация молний будет производиться всё время. Увеличивая Count, увеличиваем тем самым максимально возможное количество молний. Draw As Curve - молнии приобретут плавные изгибы.
🔥11
Привет всем!
Давайте, может, расширим возможности общения? Частично переберёмся в группу? А то меня спрашивают в частном порядке, предлагают ответ опубликовать, а истории вопроса не видно. Размер поста ограничен, а так может польза будет.
Появляется возможность задавать вопросы друг другу, делиться открытиями и достижениями )))
https://t.me/+po6LipjFma85MWQy
Давайте, может, расширим возможности общения? Частично переберёмся в группу? А то меня спрашивают в частном порядке, предлагают ответ опубликовать, а истории вопроса не видно. Размер поста ограничен, а так может польза будет.
Появляется возможность задавать вопросы друг другу, делиться открытиями и достижениями )))
https://t.me/+po6LipjFma85MWQy
Telegram
IP76.RU Chat
IP76.RU Chat: Графика. Математика. Delphi.
🔥6
IP76.RU Графика. Математика. Delphi. pinned «Привет всем! Давайте, может, расширим возможности общения? Частично переберёмся в группу? А то меня спрашивают в частном порядке, предлагают ответ опубликовать, а истории вопроса не видно. Размер поста ограничен, а так может польза будет. Появляется возможность…»
Друзья, всем привет!
Хочу познакомить с любопытным каналом:
https://t.me/x117_lab_geom
Основная тематика - геометрия, используемый язык программирования - Python. Уже зацепился за одну задачу, решил по своему. Когда-нибудь, может быть, сделаю статью.
Хочу познакомить с любопытным каналом:
https://t.me/x117_lab_geom
Основная тематика - геометрия, используемый язык программирования - Python. Уже зацепился за одну задачу, решил по своему. Когда-нибудь, может быть, сделаю статью.
Telegram
X117 | DIY Geometry Lab
Вычислительная геометрия и программирование для решения задач 3d-моделирования и инженерного дизайна. Авторский канал Данила Близнеца (@danil_bliznets). Чат с комментариями и обсуждениями: https://t.me/diy_geometry_comments.
👍2👌1
Трюки с формой 2.1: Edit в заголовке окна
Не являюсь поклонником запихнуть что-нибудь в заголовок, но аргумент «жаль столько места пропадает» принимаю и поддерживаю. Поэтому статья про то, как разместить компоненты в заголовке, не теряя AeroSnap, не имитируя заголовок панелью, не подменяя системных кнопок окна.
Работает на Windows 10 и выше.
Исходники Delphi XE7, XE12
Читать тут...
Не являюсь поклонником запихнуть что-нибудь в заголовок, но аргумент «жаль столько места пропадает» принимаю и поддерживаю. Поэтому статья про то, как разместить компоненты в заголовке, не теряя 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
С возникновением тёмной темы 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". Чтобы увидеть формулы, надо в "тележном" браузере ткнуть в три точки справа сверху, выбрать самый верхний пункт "Открыть в браузере" и все формулы покажет.
Дополнил справочник матрицами для 3D.
Исходники прилагаются.
Матрицы аффинных преобразований в пространстве аналогичны матрицам на плоскости с той лишь разницей, что добавляется ещё одна координата. Соответственно, матрицы становятся размером 4✕4 и их... Читать далее >>
❗️❗️❗️
Оказывается, на мобильных устройствах, телега открывает ссылки в собственном браузере, и в нём вместо формул надпись "Latex formula". Чтобы увидеть формулы, надо в "тележном" браузере ткнуть в три точки справа сверху, выбрать самый верхний пункт "Открыть в браузере" и все формулы покажет.
🔥7👍2
WaveFront OBJ-файл: Описание
Файл WaveFront OBJ хранит данные для построения 3D-модели. Если хотим работать в 3D, а мы хотим, надо уметь читать этот формат. В статье представлена необходимая справочная информация для построения 3d-модели.
Эти данные мне были нужны для написания читалки obj-файла. Постараюсь в скором времени выложить. На этот раз без исходников, но, надеюсь, с полезной информацией. А исходники скоро будут )))
Файл WaveFront OBJ хранит данные для построения 3D-модели. Если хотим работать в 3D, а мы хотим, надо уметь читать этот формат. В статье представлена необходимая справочная информация для построения 3d-модели.
Эти данные мне были нужны для написания читалки obj-файла. Постараюсь в скором времени выложить. На этот раз без исходников, но, надеюсь, с полезной информацией. А исходники скоро будут )))
🔥10👍2
WaveFront OBJ-файл: Загрузчик 3D-модели
Сделал загрузчик 3D-модели из OBJ-файла. Всё оформлено одним модулем. Ничего стороннего не используется. Просто подключаем и пользуем.
Исходники прилагаются.
Статья тут...
Сделал загрузчик 3D-модели из OBJ-файла. Всё оформлено одним модулем. Ничего стороннего не используется. Просто подключаем и пользуем.
Исходники прилагаются.
Статья тут...
🔥9👍4
Smooth-Minimum operator
Сегодня поделились шикарной статьёй.
Smooth-Minimum operator — это оператор в компьютерной графике, который позволяет сглаживать и объединять формы. Помогает создавать непрерывные поверхности, объединяя отдельные элементы.
https://iquilezles.org/articles/smin/
Сегодня поделились шикарной статьёй.
Smooth-Minimum operator — это оператор в компьютерной графике, который позволяет сглаживать и объединять формы. Помогает создавать непрерывные поверхности, объединяя отдельные элементы.
https://iquilezles.org/articles/smin/
iquilezles.org
Inigo Quilez :: computer graphics, maths, shaders, fractals, demoscene
Tutorials and articles of Inigo Quilez on computer graphics, fractals, math, art, demoscene, shaders and more.
🔥9
Маркус Бейкер, 110 формул для нахождения площади плоского треугольника
Возник недавно разговор, что формул для площади треугольника есть на самом деле штук восемь-десять, ...надцать. Но я ж помню, что один товарищ в 19-м веке собрал их что-то около сотни. Пришлось настырно гуглить. Редкий экземпляр оказался. Между тем, теперь он есть, лежит в справочниках, можно ознакомиться, ничего не качая.
Дополнительно: одна интересная беседа по поводу нахождения площади треугольника и критика некоторых формул Бейкера (номера 20, 63, 80, 94).
Заставку придумал Recraft. С тех пор он очень сильно поумнел, похорошел и подорожал...
Возник недавно разговор, что формул для площади треугольника есть на самом деле штук восемь-десять, ...надцать. Но я ж помню, что один товарищ в 19-м веке собрал их что-то около сотни. Пришлось настырно гуглить. Редкий экземпляр оказался. Между тем, теперь он есть, лежит в справочниках, можно ознакомиться, ничего не качая.
Дополнительно: одна интересная беседа по поводу нахождения площади треугольника и критика некоторых формул Бейкера (номера 20, 63, 80, 94).
Заставку придумал Recraft. С тех пор он очень сильно поумнел, похорошел и подорожал...
🔥7👍3
Шпаргалка: Основные формулы площади треугольника
Небольшая шпаргалка по основным формулам нахождения площади любого треугольника.
Обозначения повторяют описание из предыдущего поста. Все формулы, кроме координат, можно найти в справочнике Бейкера (38, 48, 1, 50, 73, 5)
Возможно, если время позволит и будет ваша заинтересованность, сделаю аналогичное для прямоугольного, равнобедренного и равностороннего треугольников.
Небольшая шпаргалка по основным формулам нахождения площади любого треугольника.
Обозначения повторяют описание из предыдущего поста. Все формулы, кроме координат, можно найти в справочнике Бейкера (38, 48, 1, 50, 73, 5)
Возможно, если время позволит и будет ваша заинтересованность, сделаю аналогичное для прямоугольного, равнобедренного и равностороннего треугольников.
🔥7