Что-то уж сильно комментаторы выше загнули в этот раз. Автор работы ничего не пропагандирует, ничьи заслуги не принижает и не искажает действительность в чью-либо пользу.
Она лишь указывает проектом (достаточно красивым проектом, стоит отметить) на то, что женщины тоже играют роль в этом мире, и даже не только на кухне.
Нахожу странным то, что эта мысль у кого-то может вызвать насмешку или даже агрессию.
Мне кажется, что стоит перенести методы Star в прототип. При описании подобных объектов с помощью class методы автоматически добавляются в прототип, а объявление методов напрямую в this неплохо так режет производительность. При каждом создании новой звезды эти методы объявляются по-новому, что делает моему старому задыхающемуся ноутбуку плохо.
Добавил чуть больше настроек матрицы через константы;
Заменил русские буквы на латинскую письменность;
Уменьшил значение альфы для цвета, заполняющего бэкграунд при каждой отрисовке (по совету комментатора выше);
Добавил шанс появления символа на экране, убрав необходимость добавления пробелов в алфавит матрицы;
Всё таки придумал решение проблемы с этим странным горизонтальным «слипанием» :)
В моём решении этой проблемы я использовал функцию, которая создаёт кривую из случайных координат, по которой в канвасе и будут рисоваться буквы. Чтобы символы не всегда рисовались на координатах одной и той же кривой, я создал ещё одну константу — UPDATE_CURVE_INTERVAL. Каждый раз, когда вызывается функция отрисовки, она инкрементирует счётчик, тем самым заставляя кривую продолжать спускаться по координате Y. Если значение счётчика доходит до UPDATE_CURVE_INTERVAL, то счётчик обнуляется и создаётся новая кривая из случайных координат. Чем меньше значение этой константы, тем чаще будет создаваться новой кривая.
Что-то уж сильно комментаторы выше загнули в этот раз. Автор работы ничего не пропагандирует, ничьи заслуги не принижает и не искажает действительность в чью-либо пользу.
Она лишь указывает проектом (достаточно красивым проектом, стоит отметить) на то, что женщины тоже играют роль в этом мире, и даже не только на кухне.
Нахожу странным то, что эта мысль у кого-то может вызвать насмешку или даже агрессию.
Python оскорбляет права индусов, потому что только им можно заклинать змей
Мне кажется, что стоит перенести методы Star в прототип. При описании подобных объектов с помощью class методы автоматически добавляются в прототип, а объявление методов напрямую в this неплохо так режет производительность. При каждом создании новой звезды эти методы объявляются по-новому, что делает моему старому задыхающемуся ноутбуку плохо.
Но я просто умиляюсь тому, что разница зарплаты между junior и middle разработчиком равна пятидесяти тысячам рублей, но...
Вот реализация:
P.S.: Извините за ошибки с отступами. Я трезв, просто редачил код одновременно и в блокноте, и на codepen, и на jsfiddle.
Я захотел улучшить Ваш код, и вот что я сделал:
В моём решении этой проблемы я использовал функцию, которая создаёт кривую из случайных координат, по которой в канвасе и будут рисоваться буквы. Чтобы символы не всегда рисовались на координатах одной и той же кривой, я создал ещё одну константу — UPDATE_CURVE_INTERVAL. Каждый раз, когда вызывается функция отрисовки, она инкрементирует счётчик, тем самым заставляя кривую продолжать спускаться по координате Y. Если значение счётчика доходит до UPDATE_CURVE_INTERVAL, то счётчик обнуляется и создаётся новая кривая из случайных координат. Чем меньше значение этой константы, тем чаще будет создаваться новой кривая.
А вот результат всех этих изменений: