Для 707ого.
Я начал думать про такое. Вижу несколько задач:
Удобный инструмент разложить 3д модель укладки ленты. Не кад-овские инструменты, а что-то интуитивное. Хорошо бы строить ленту из последовательных сегментов. Как бы из кусков.
Мета язык описания эффектов. Не глупые массивы, хотя они тоже, но и функции, циклы, задание радуг и градиентов одной командой. Интерпретатор этого языка реал тайм при загрузке в ленту. Контроллеры, само собой, есп или арм, не нано никак! ;)). Есп32 или распберри пико или стм32.
Не смог понять - нахера у ТС картинки в программу подгружаются? Срез картинки, как кадр эффекта штоле? Вот тут мне нужен совет - это правда надо и в каком виде? Творческое полушарие мозга в школе на учебник физики выменял!
3д визуализации не бойся. Это фигня есть и на джава и на джава скрипте и на пайтоне. Крутить, растягивать… И все такое.
Тоже хотел нарисовать на отрезке в 33 пикселя красный пиксель бегущий по зелёному фону туда-обратно и не понял как
А срач обо всём и ни о чём сразу. Самописные приложения чётко предназначены для конкретной геометрии - glediator (немецкие любители) для матриц двумерных. Имеет визуализатор, не работает с отдельными пикселями, а с исходным “изображением”, подвергая его различным трансформациям-анимациям. Есть Quadrum (шведский или финский автор) - приложение для 3Д куба с покадровой, попиксельной прорисовкой и тоже с визуализатором. Здесь какая геометрия?, где визуализатор?, какой концепт рисования “фефектов”? Взяв их приложения и ни разу ни бум бум я разобрался с ходу методом тыка и така. А тут два захода и мимо
Конечно приложение должно быть для: например, ленты свёрнутой в конусную спираль на ёлке, или лампы Гайвера, или под альтернативную геометрию.
Это да, дальше 7 не смотрел…в смысле подумать не мог, что правая рука может делать совсем иное чем левая…
PS не быть тебе вэб десигнером, BOOM подтвердит
Здесь КОТ
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width=340 height=60 style="border:3px solid grey"></canvas>
<div style="margin: 2px 0 10px 138px; display:block;">
<button onclick="isRunning = ! isRunning">Start/Stop</button></div>
<script>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
//canvas.height = canvas.width;
let yP = 30;
let ledWidth = 10;
let repeatTime = 100;
let isRunning = true;
let id = null;
let nLed = 33;
let d = 1;
let redP = 0;
ctx.fillStyle = "green";
for (let i = 0; i < nLed; i++) {
ctx.beginPath();
ctx.ellipse((i+1)*ledWidth, yP, 4, 8, 0, 0, Math.PI * 2);
ctx.fill();
}
id = setInterval(() => {
if (isRunning) {
ctx.fillStyle = "green";
ctx.beginPath();
ctx.ellipse((redP+1)*ledWidth, yP, 4, 8, 0, 0, Math.PI * 2);
ctx.fill();
if (redP == 0) d = 1;
if (redP == nLed-1) d = -1;
redP = redP + d;
ctx.fillStyle = `rgb(${255 - redP*7}, 0, ${redP*7})`;
ctx.beginPath();
ctx.ellipse((redP+1)*ledWidth, yP, 4, 8, 0, 0, Math.PI * 2);
ctx.fill();
}
},repeatTime);
</script>
</body>
</html>
Вот она программа для эффекта! Да, ТС у вас своеобразное восприятие. Есть конечно нестыковка - на визуализаторе, в программе один красный бегает туда-сюда, а на ленте два и на половинах.
Нужно просто сохранить текст в файл hernya.html и потом открыть это файл в браузере. Специально для тебя сообщу, что “браузер” это такая кнопочка на экране. Бывает Chrome бывает Firefox, у редкого класса даунов бывает еще что-то, но тут я не помощник.
Вторая версия не работает у меня - пишет имя инвалид и сыпет окном с ошибкой. Приходится через диспетчер задачу снимать.
Ещё в первой версии после запуска на ленту визуализатор перестаёт работать.
PS А почему свой концепт не усложняете - берём ленту гнём в любую плоско-объёмную фигуру и таскаем- вращаем в цветовом пространстве?