🙄Разминка для ума!
Треугольник Серпинского, интересная фигура которую построить достаточно просто.
Алгоритм такой:
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
😄Thought
➖➖➖➖➖➖
🔘As a verb thought is the past tense of 'think':
🔜I thought about the problem for a little while.
🔘 an idea or plan.
🔜I've had a thought about what we should do next.
As a plural noun, thoughts can be:
🔘our opinions or beliefs.
🔜What are your thoughts on the best way to learn English?
As an uncountable noun, thought can mean:
🔘‘careful consideration’.
🔜We need to give more thought to this project.
#Thought👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
前些日子在網上衝浪(不知道現在還有沒有人在用 surfing the Internet / surf on the Internet 這樣的說法)時,發現了 NirSoft 這個由開發人員 Nir Sofer 所創建的個人網站。
根據他在關於頁面的說法,這個網站最初建立於 2001 年,用來陳列自己開發的小工具;起初託管在一些免費服務上,後來隨著廣告與惡意使用者逐漸增多,在 2004 年購買了自己的網域。
裡面有許許多多採用 C++ 開發的 Windows 實用小程式,並且據作者所說,這些程式具備可攜性(portable),大多情況下不需要安裝且不會存取註冊表;裡面 Network Monitoring, Internet Related Utilities, Command-Line Utilities, Programmer Tools 和 System Utilities 的部分可以尋尋寶。
作者還有維護一個部落格,目前最新的一篇文章是 2023/08/19 發佈的;長年來都在業餘時間開發小工具,還能樂此不疲且碼耕不輟,這應該是許多開發者想活成的樣子了。
#Thought
在 Do You Want To Be a News Source? Just Change Your Account Name 一文中,提到了過去幾年在 Twitter 上出現的幾個虛假新聞帳號案例,這類帳號通常是由既有的帳號修改使用者名稱(username)以及帳號名稱,而非創建新的使用者,這樣的操作手法需要透過永久 UID 來辨認(可以透過 TwitterID 這個工具查詢與反查)。
__
這個電子報還有其他不錯的文章,比如 How to Find Swarms of Fake Twitter Followers 一文,表示這類假帳號通常具備兩個特徵:
1. 短時間內獲得數百或數千名的假帳號關注
2. 假帳號通常會在固定的時間或時間範圍內創建帳號
文中有提供一段簡單的 Python 程式來辨別上述的特徵,但需要具備 Twitter 開發者帳號並啟用 API 來操作,這在馬總搞了一堆奇妙的操作後,可能得另謀他法了…
#Thought