0
我試圖找到正確的方式來動態生成路徑。我正在關注使用D3js創建SVG路徑的DashingD3js' pattern。D3js將路徑`d`屬性綁定到數據
我的問題是,除了檢查訪問器函數中的每個索引和操作值,並且除了創建表示要操縱的特定點的變量之外,是否有更簡單的方法來指定動態線座標?
我有我的對象數組中的路徑的座標。我很容易使用w
和h
值使座標響應。
var lineData = [ {'x': 100, 'y': 0 }, {'x': w/2, 'y': -150 }, {'x': w/2, 'y': 150}, {'x': 100, 'y': 0}];
我已經能夠通過訪問函數像下面那樣操縱座標了。
var lineFunction = d3.svg.line()
.x(function(d, i) {
// function replacing lineData w/dynamic data
}
return d.x
})
.y(function(d) { return d.y })
.interpolate('linear');
以下是我引用的路徑:
myPath
.attr('d', function() { return lineFunction(lineData); });
是否有指定的動態座標線更簡單的方法?
正是我一直在尋找。你有沒有在某處找到這個或者是你自己的實現? – Himmel
對不起,我沒有參考,這只是我的想法,如何根據[公認原則](https://media.pragprog.com/articles/may_04_oo1.pdf)做到這一點。這裏的原則是「害羞」:有一個基於'w'的全局規則,只有'f'需要知道,'linedata'的一些成員接受這個全局值,但只有'linedata'需要知道哪些是爲了解析這些成員,'linefunction'需要知道一些成員是函數。所以你只需找出哪些物體需要知道什麼並從那裏拿走。 –