Я не уверен, что фейерверки, блестки или какие-либо карусели являются традиционными для дня президента в США. Но я был так рад длинным выходным, что решил отпраздновать их не только чтением главы «Природа кода» о тригонометрии, но и попыткой переработать один из примеров фейерверка p5.js, о котором я говорил ранее, и попрактиковаться в sohcahtoa с какой-то набросок сверкающей спирали-карусели. У меня также был план сделать «петлю» GIF из скетча — эта часть в конечном итоге оказалась самой простой, как вы можете видеть выше.

Я начал с работы над своей версией «тригонометрической спирали». Это было не самое сложное в игре.

Вот ссылка на мой окончательный эскиз.

Однако после того, как я закончил с этим, я хотел реорганизовать этот код, создав класс Spiral {}, что, казалось, имело смысл. На данный момент мне это не удалось.

Посмотрите мою попытку здесь.

Думаю, в этой ситуации мне нужен был более изощренный подход — т.е. все еще создавая класс Particle {}, а затем имея дело со всей тригонометрией внутри и различиями между полярными и декартовыми координатами.

Тем не менее у меня появилось желание переработать один из вдохновляющих примеров (не мой) с фейерверками и массивами из прошлого семестра. Идея скетча заключается в том, что при нажатии кнопки мыши взрывается пучок блесток. Результат довольно элегантный. Я намеревался переписать код, используя класс Sparkle {} и массив объектов частиц sparkles[], а также функциональность createVector() p5.js.

Я попробовал это здесь.

…и заблудился на середине, наконец поняв, что продуктивнее будет создавать фейерверки с нуля. К счастью, именно для этого есть Учебник Coding Train от 2016 года — и несколько примеров в обработке. Я следовал инструкциям шаг за шагом, обновляя синтаксис и пытаясь объединить уже сделанные карусели, о которых я говорил ранее, с фейерверками, чтобы создать что-то вроде праздничного скетча. Тем не менее, в этом были некоторые трудности, поскольку моим каруселям требовался фон, который был в setup(), чтобы показывать следы и создавать причудливые узоры, в то время как фейерверкам отчаянно требовался фон в draw(), иначе они выглядели бы как странные водопады.

Итак, я изменил идею и решил, что этот скетч будет не о каруселях и фейерверках, а об очередной вечеринке, приходящей в Нью-Йорк.

Вот эскиз.

Я также сделал упрощенную версию фейерверков-каруселей, но там карусели больше похожи на мигающие огни (все равно весело).

Самая интригующая часть работы с фейерверком Coding Train заключалась в том, чтобы понять, что я могу изменить взорванную форму, манипулируя скоростью и написав какую-то дополнительную функцию, как в этом удивительном примере. Я думал попробовать использовать для этого свои спирали и, возможно, поработаю над этим в следующий раз.