簡體   English   中英

D3 v4:強制刻度與單擊旋轉並破壞力

[英]D3 v4: force tick vs click to rotate and breaking the force

我正在嘗試在力布局中的d3v4可拖動節點上具有矩形,以在單擊時帶有過渡而旋轉,但是刻度功能似乎通過重置旋轉屬性或忽略過渡功能來干擾它。

這些是困擾我的地方:

//CLICK
function clicked(d, i) {
    d.ang = d.ang+180
    d3.select(this)
        .transition()
        .attr("transform", function(d) {
            return "translate(" + d.x + "," + d.y + ")"
        });
}

//FORCE
function ticked() {
    d.ang += 360
    var tiles = box.selectAll('.tile')
        .attr("transform", function(d) {
            return "translate(" + d.x + "," + d.y + ") rotate(" + d.ang + ")"
        });
}

這是一個帶有示例的垃圾桶

還有一個我無法弄清楚的小故障,如果您將窗口大小更改得太快或有太多的obj(以至於使它們瘋狂反彈),最終其中一些將在其dx和dy中返回NaN並中斷。他們的翻譯轉換。 關於此的任何想法也將很棒。

提前致謝!

分開變換。 添加另一個僅控制圖塊位置的<g>元素和一個控制旋轉的元素。

。例如

<g class="controls-location">
    <g class="controls-rotation">
        <rect>
        <circle>
    </g>
</g>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM