Here - это проект D3, над которым я работаю. Он обновляет форму правильного многоугольника от n до n-1 или n + 1 углов. Нажатие кнопок a, b, c, d или e вызовет это. Я последовал за учебником по general update patterns и попытался следовать шаблонам во многих других образцах, которые я нашел, в первую очередь bl.ocks.org/mbostock/3081153.D3: Переход между многоугольниками
Вот функция рисования
function draw(data) {
var v = vis.selectAll("polygon")
.data(data, function(d) { return d; });
// enter selection
v.enter().append("polygon");
// update selection
v.attr("class", "update")
.transition()
.duration(750)
.attr("points",function(d) {
return d.map(function(d) { return [d.x,d.y].join(","); }).join(" ");})
.attr("stroke","black")
.attr("stroke-width",2);
// exit selection
v.exit().attr("class", "exit")
.transition()
.duration(750).remove();
};
И функция обновления
function update() {
if (this.classList.contains('on')) {
d3.select(this).classed('on',false)
letters.pop(this.id);
}
else {
d3.select(this).classed('on',true)
letters.push(this.id);
}
var N = letters.length;
draw([poly(N,N,[])]);
};
Мой вопрос заключается в том, как и куда звонить интерполяцию, чтобы сделать это идти плавно от одного многоугольника к другому?
Thanks
У вас уже есть переход. Разве это не работает для вас? –
Есть переход да. Надеюсь, ты увидишь это на скрипке. Однако я хочу, чтобы он переходил от одной формы к другой, а другой не появлялся над другой, которая затем исчезает. –
Ой, прости, извините, пропустил ссылку на скрипку. [Этот пример] (http://bl.ocks.org/mbostock/3081153) должен помочь. –