🙄Разминка для ума!
Треугольник Серпинского, интересная фигура которую построить достаточно просто.
Алгоритм такой:
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
🔥 Top Blacksmiths #4 is NOW LIVE! 🔥
🏆 Rewards: Top 50 Blacksmiths will share 150,000 AURA
🎖 Reward Breakdown:
🥇 Top 1: 25K AURA
🥈 Top 2: 15K AURA
🥉 Top 3: 10K AURA
🏅 Top 4-10: 5K AURA
🏅 Top 11-20: 3K AURA
🏅 Top 21-30: 2K AURA
🏅 Top 31-40: 1K AURA
🏅 Top 41-50: 500 AURA
⏰ Duration: Mar 15, 14:00 UTC - Mar 29, 14:00 UTC
📌 Note: Leaderboard rank is based on Points. If Points are tied, higher pot tier ranks higher.
🔨 Prove you're the ultimate Blacksmith! 🏅
#SingSing#TopBlacksmiths
🎤Announcement| Mystic Garden Game |Chat| Spotlight Channel
🔥 Top Blacksmiths #3 is NOW LIVE! 🔥
🏆 Rewards: Top 50 Blacksmiths will share 150,000 AURA
🎖 Reward Breakdown:
🥇 Top 1: 25K AURA
🥈 Top 2: 15K AURA
🥉 Top 3: 10K AURA
🏅 Top 4-10: 5K AURA
🏅 Top 11-20: 3K AURA
🏅 Top 21-30: 2K AURA
🏅 Top 31-40: 1K AURA
🏅 Top 41-50: 500 AURA
⏰ Duration: Feb 15, 14:00 UTC - Mar 1, 14:00 UTC
📌 Note: Leaderboard rank is based on Points. If Points are tied, higher pot tier ranks higher.
🔨 Prove you're the ultimate Blacksmith! 🏅
#SingSing#TopBlacksmiths
🎤Announcement| Mystic Garden Game |Chat| Spotlight Channel
🔥 Top Blacksmiths #2 is NOW LIVE! 🔥
🏆 Rewards: Top 50 Blacksmiths will share 150,000 AURA + $100 $SING!
🎖 Reward Breakdown:
🥇 Top 1: 25K AURA + $20 $SING
🥈 Top 2: 15K AURA + $15 $SING
🥉 Top 3: 10K AURA + $10 $SING
🏅 Top 4-10: 5K AURA + $5 $SING each
🏅 Top 11-20: 3K AURA + $2 $SING each
🏅 Top 21-30: 2K AURA
🏅 Top 31-40: 1K AURA
🏅 Top 41-50: 500 AURA
⏰ Duration: Jan 15, 14:00 UTC - Feb 5, 14:00 UTC
📌 Note: Leaderboard rank is based on Points. If Points are tied, higher pot tier ranks higher.
🔨 Prove you're the ultimate Blacksmith! 🏅
#SingSing#TopBlacksmiths
🎤Announcement| Mystic Garden Game |Chat| Spotlight Channel
🔥 Top Blacksmiths #2 has ENDED! 🔥
Huge respect to all the Blacksmiths who fought till the last second! 🏆⚒️
🎁 Rewards will be distributed within 72h – stay tuned!
#TopBlacksmiths#Rewards
🎤Announcement| Mystic Garden Game |Chat| Spotlight Channel
🔥 LAST DAY of Top Blacksmiths #2! 🔥
⚒️ Top 50 Blacksmiths will share 150,000 AURA + $100 $SING! 🏆
📌 Ranking rules:
✅Leaderboard is based on Points
✅If tied, higher pot tier ranks higher
⏳ EndsFeb 5, 14:00 UTC – make your final push! 🚀
#TopBlacksmiths#AuraRewards
🎤Announcement| Mystic Garden Game |Chat| Spotlight Channel
🔧 Top Blacksmiths Event Update 🔧
Worried about points? Don’t be! 🎉
If points are equal, the player with the higher pot tier will rank higher. 🏆 The leaderboard is already set up with this rule, so forge away without a worry! 🛠✨
🔥 Keep forging and climb the ranks! 🔥
#MysticGarden#TopBlacksmiths#PlayToEarn#Web3Gaming
🎤Announcement| Mystic Garden Game |Chat | Spotlight Channel