0
我用Pan+Zoom定期繪製網格,我在隨後的順序中繪製正方形,當用戶單擊按鈕時D3 Pan + Zoom - 當放大結果錯誤位置時添加項目
但是,如果我加入新的項目之前放大,它被添加到錯誤的位置,即
問題http://jsbin.com/dewiq/2/edit
任何想法的演示?
我用Pan+Zoom定期繪製網格,我在隨後的順序中繪製正方形,當用戶單擊按鈕時D3 Pan + Zoom - 當放大結果錯誤位置時添加項目
但是,如果我加入新的項目之前放大,它被添加到錯誤的位置,即
問題http://jsbin.com/dewiq/2/edit
任何想法的演示?
您正在混合放大d3的兩種不同方式 - 縮放(「語義」縮放)和縮放(「幾何」縮放)。見this answer for a detailed breakdown of the differences。
您已將縮放附加到縮放行爲,因此當您縮放或平移縮放時,請修改以反映更改。但是,您只是使用該修改來重繪軸,因爲您正在使用幾何變換創建縮放效果。直到你嘗試重繪任何你的情節(或者,繪製一個新的形狀)。當您這樣做時,修改後的比例尺和變換後的比例值會加在一起,從而使縮放比例和平移效果翻倍,從而導致與座標軸不在一個位置的形狀。
解決方法是簡單地做一個或另一個。 將您的比例尺連接到縮放行爲,然後使用這些比例在每次縮放事件後重繪所有形狀; 或使用轉換 - 但隨後放大和縮小時,軸不會自動更改刻度間距。
感謝您的指針!我已經使用語義縮放http://jsbin.com/xuban/2/edit修復了它 – alphageek