Недавно я реализовал алгоритм заливки анимированного графа, основной особенностью которого является анимированный переход «импульса» между выбранными вершинами графа. Позвольте мне кратко объяснить:
Структура графа: Вот как выглядит структура графа:
< /ol>
Недавно я реализовал алгоритм заливки анимированного графа, основной особенностью которого является анимированный переход «импульса» между выбранными вершинами графа. Позвольте мне кратко объяснить: [list] [*][b]Структура графа[/b]: Вот как выглядит структура графа: < /ol> [code]{ "1": { "coordinates": [0.1, 0.4, -1], "connections": [3, 5] }, "2": { "coordinates": [0.2, -0.4, 0.2], "connections": [1] }, "3": { "coordinates": [1, -0.3, 0.9], "connections": [1, 2] }, "4": { "coordinates": [-0.5, 0.4, 0.9], "connections": [] }, "5": { "coordinates": [0.0, 0.1, -0.2], "connections": [4, 2] } } [/code]
[*][b]Класс FloodFill[/b]: я использую класс FloodFill с двумя асинхронными методами: animateImpulse и заполните. [/list] [code]function startImpulseFromAttributes() { const graph = parseGraphDict();
const floodFill = new FloodFill(graph, animationSpeed); floodFill.fill(startVertex, impulsePower, (impulse, vertex) => { post("Impulse", JSON.stringify(impulse), " active at vertex ", JSON.stringify(vertex)); }); }
var activeObjects = []; // List to track created objects
function cleanupAllObjects() { activeObjects.forEach(obj => obj.freepeer()); activeObjects = []; // Clear the list }