D3.js Войти в выходную реализацию шаблона обновления
Фон:
Я работаю над тестовым проектом по исследованию ориентированного графа в THREE.js, у меня есть структура данных, которая не является DOM, но имеет много общих свойств. А именно, структура является иерархической, и я могу выполнить выбор (подграф). Я построил макет двигателя. Теперь я хочу сделать это динамичным. Под этим я подразумеваю, что я хотел бы иметь возможность добавлять / удалять / обновлять узлы, которые в этом случае представлены объектами сцены.
Мне нравится, как это обрабатывается в D3.js, однако библиотека, похоже, сильно зависит от данных, существующих в DOM (?)
Я изучил исходный код и немного повредил голову.
Вопрос:
Кто-нибудь знает, как закодирован шаблон входа, выхода, обновления Майка Бостока, как я хотел бы сделать игрушечную реализацию, которая будет обрабатывать мой (не DOM) сценарий.
Спасибо заранее.
2 ответа
Майк Босток, автор D3, опубликовал статью о дизайне D3. Его соавторами были Вадим Огиевецкий и Джеффри Хир, опубликованные в IEEE Trans. Визуализация и Комп. Графика (Proc. InfoVis), 2011. Ссылка на бесплатный загружаемый PDF-файл можно найти здесь.
После того, как я правильно понял шаблон обновления и его реализация была не сложной.
Для интересующихся: ключ к динамическим переходам - это возможность определить, какие данные поступают, уходят и остаются (вход, выход, обновление в D3). Вы можете расположить прибывающие и оставшиеся данные и выполнить преобразования на любом из узлов или их визуальных представлений. Например, удаление элементов из вашего представления.
В моем случае мне нужно было вычислить графические комплименты и пересечения между предками моего нового корневого узла и предками моего предыдущего корневого узла.
D3 прост, если вы понимаете некоторые основы. Вот некоторые основы, которые будут вам полезны.
- Выборы являются основной концепцией в D3
- Выберите тело страницы
- Добавить элемент контейнера
- Для каждого элемента набора данных добавьте визуальный элемент
Что оно делает?
- Загрузка, переплет, преобразование, переход
- d3 - ссылается на объект D3
- select() - он вернет ссылку на первый элемент в DOM, который соответствует
- selectAll() - более одного элемента
- append() - создает новый DOM и добавляет его в конец выделения