我有一个x轴的时间刻度,每次缩放时,我都会保存变换对象和新的时间刻度。它们是setState
和this.scale
。这里this.transform
是一个VueJs实例。
我想实现一个将缩放比例更改为特定区域的功能,但是我不知道如何计算新的this
和新的k
。在我的情况下,缩放仅适用于x轴。
这是我的代码:
x
const k = this.w / (this.scale(dateTimeEnd) - this.scale(dateTimeStart)) * (this.transform ? this.transform.k : 1);
const translateX = (this.transform ? this.transform.x : 0) - this.scale(dateTimeStart);
this.svg
.transition()
.duration(750)
.call(this.zoom.transform, () => {
return d3.zoomIdentity
.scale(k)
.translate(translateX, 0);
});
是绑定了缩放行为的选择。
如何计算比例尺的新this.svg
指标和translateX指标的新k
?