🙄Разминка для ума!
Треугольник Серпинского, интересная фигура которую построить достаточно просто.
Алгоритм такой:
1. создаём любые 3 точки на плоскости
2. из этих точек случайно выбираем любую, как начальную
3. случайно выбираем любую точку из этих же трёх точек как цель
4. перемещаемся в сторону цели на половину расстояния
5. повторяем бесконечно с пункта 3
Если сделать достаточно много итераций то вырисовывается интересная фигура. Треугольник, в который вписаны более мелкие треугольники. Это самый настоящий фрактал!
Я собрал пример построения такой фигуры на базе Qt.
🌎 Код можно посмотреть здесь.
С помощью paintEvent я рисую точки по озвученному алгоритму. Каждые 10 секунд либо по клику на виджете строится следующий треугольник.
Особенности примера:
🔸 Атрибут Qt.WA_OpaquePaintEvent позволяет сохранить то, что было нарисовано в прошлой итерации. Таким образом мы видим постепенное наполнение точек а не мелькающую одну точку.
🔸QTimer позволяет создавать отложенные вызовы один раз или с повторением через интервал.
🔸QColor.fromHsv() позволяет создать рандомный но предсказуемый цвет с помощью HSV схемы. Не слишком светлый и не слишком тёмный но всегда с разный. Рандомизации подвергается только смещение по цветовому кругу (Hue), яркость (Value) и насыщенность (Saturation) можно контролировать отдельно в своих пределах или оставить статичными. Обычный рандом цвета по RGB не даёт такой предсказуемый результат.
🔸 Каждый новый цикл с новым треугольником предварительно затемняет предыдущие через этот вызов
painter.fillRect(rec, QColor(0, 0, 0, 100))
То есть полупрозрачный цвет. Таким образом, чем старше треугольник, тем он темней.
Если сделать виджет фулскрин, то у нас получится некий ScreenSaver)))
🔸 Да, я знаю, что рисование в Qt не самый лучший способ сделать этот пример) Скорее всего самый НЕподходящий. Попробуйте сделать тоже самое но другими средствами.
#qt#source#tricks
🤖Вышла вторая Beta Android 16 QRP2
Осенний фича релиз Android 16 всё ближе и вышла следующая бета с новыми возможностями:
👉 Platform Stability - API больше меняться не будет и можно заливать в Google Play в Beta/Alpha каналы
👉 Специальный режим установки приложения через ADB, чтобы разработчики могли тестировать приложения с вводом системы верификации разработчиков:
adb shell pm set-developer-verification-result
👉 Новый сборщик мусора. ART теперь будет поставляться с Generational Concurrent Mark-Compact (CMC) Garbage Collector, которые фокусируется на сборке новых объектов, которые обычно и чистятся. Ожидается снижения потребления CPU ресурсов и потребление заряда батареи.
👉 Встроенные счетчик количества шагов в Health Connect. Приложения смогут получить эти данные, если у них есть разрешение READ_STEPS.
Чтобы проверить наличие API из Android 16 QRP2 надо вызвать новое API
if (Build.VERSION.SDK_INT_FULL >=
Build.VERSION_CODES_FULL.BAKLAVA_1) {
// Вызываем APIs из Android 16 QPR2
}
Релиз обновленной версии Android 16 ожидается в ноября 2025
#android16
🤯Google придумала новый способ давления на разработчиков
Теперь если в приложении не добавили тёмную тему, то пользователь сам принудительно сделает её включение через системные настройки. Это приведёт к инверсии цветов.
Наконец-то Google поняла что разработчики иногда забивают на тёмную тему, обязать их не получается (ну почему через Google Play не обязать?).
Видно так решила Google:
Будем форсировать фичи и пусть пользователи жалуются и занижают рейтинг приложения в магазине
Странно, что на рекламной графике использовали приложение FitBit, хотя в нем есть нативная темная тема, да и сам продукт принадлежит Google. В FitBit нет тёмной темы. Да и не удивился - худшее спортивное приложение, что я использовал 😞
#android16
🤖Вышла первая Beta второго квартального обновления Android 16
С релиза Android 16 Google перешла на новый цикл обновлений Android - раз в квартал. Нас ждут новые фичи и API для разработчиков
Чтобы проверить наличие SDK надо использовать новый способ проверки
// Проверяем версию API через новое API для проверки версии SDK
if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1)
Что нового:
👉 Принудительный перевод светлых приложений в темные. Делается инверсия цветов
👉 Система будет делать иконки приложений автоматически тематически (монохромная версия, покрашенная в цвета системы)
👉 Приложения смогут переопределить системный UI шаринга, чтобы оставаться интерактивными
👉 Добавили возможность реализации переноса данных между Android и iOS версий приложения
👉 PDF в Android SDK теперь поддерживает редактирование и аннотации. На основе этого API будет работать Jetpack PDF библиотека
👉 Display Topology API - новое API для получения информации при работе с несколькими экранами о их положении - границы и относительное размещение.
👉 Тайлы в быстрых настройках теперь должны относится к одной из стандартных категорий
👉 Больше возможностей для управления Haptic Feedback
👉 Много новых Media API (подробности отдельным постом)
👉 Улучшения управлением компаньон устройств (подробности отдельным постом)
👉 Улучшение безопасности и приватности (подробности отдельным постом)
👉 Улучшения API для разработчиков (подробности отдельным постом)
Релиз стабильной версии ожидается в 4 квартале (ориентировочно ноябрь 2025). Уже доступа первая Beta версия для Google Pixel. Подробнее про изменения читайте на сайте Android Developers
#android16
🤖Android 16 вышел официально!!!
Что нового
👉 Новый график релиза версий Android
👉 Обязательный Edge-to-edge
👉 Live Updates уведомления
👉 Все приложения принудительно растягиваются на больших экранах
👉 Лучшая производительность и время жизни батареи
Обзор всех изменений можно найти в канале по тегу #android16 (кликайте на сам тег)
🤖Вышла Android 16 Beta 4
Вышла последняя Beta версия Android 16. Никаких изменений в API для разработчиков нет, только доработки и улучшения в ОС.
Следующий релиз будет финальным. Ставлю на то, что это сделают анонс на Google I/O.
#android16
Local Network Protection (LNP) - Новая фича для будущего Android. Позволит пользователю контролировать какие приложения могут иметь доступ в локальную сеть. Появится новое Runtime Permission, но потом. Разработчики уже могут потестировать через вызовы shell команд
adb shell am compat enable RESTRICT_LOCAL_NETWORK <package_name>
#android16
Фон под текстом для обеспечения лучшей контрастности и читаемости - новая фича Android 16. Пользователь сможет включать в настройках, а разработчики узнать о статусе через Accessibility API
#android16
🤖Появился новый Intent для съёмки Motion Photo
val intent = Intent(MediaStore.ACTION_MOTION_PHOTO_CAPTURE)
// или MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE
// Задаем куда сохранить
intent.putExtra(MediaStoreEXTRA_OUTPUT, uri)
// или Uri через ClidData
intent.setClipData(clipData)
context.startActivity(intent)
#android16
🤖Вышла вторая Beta Android 16
Вышла вторая из четырёх Beta версий Android 16. Улучшили работу с медиа, новые возможности Camera2 API, форсирование Edge-to-edge и другие. Как всегда расскажу отдельными постами про самые интересные фичи
#android16
Android 16 Beta 1: Предиктивный жест назад для трёхкнопочной навигации и приложения Обои и Стиль.
При использовании системной навигации с тремя кнопками теперь можно будет увидеть анимацию предиктивного жеста назад. Для этого необходимо зажать кнопку назад. При этом вы также можете отменить это действие просто переместив палец в другую часть экрана, но не отрывая палец от дисплея.
Также теперь поддержку предиктивного жеста назад получило системное приложение Обои и стиль.
#Android16
😎Google News | Ru
Notification Live Updates в Android 16
Добавили новый стиль уведомлений - ProgressStyle, который позволяет задать текущий прогресс, иконки для начала, конца и текущей позиции, добавлять разные сегменты и точки.
Подробности по новому типу уведомлений читайте тут
Рекомендуется интегрировать приложениям в сфере доставки и навигации. Пишите свои комментарии каким категориям приложений еще подойдет
#android16