Привет, я новичок в D3, и я не могу найти ни одного примера макета силы d3, в котором есть барьеры, являющиеся путями. Я думаю что-то вроде этого.
вот так, но неправильная граница, а не коробка. https://bl.ocks.org/mbostock/1129492
Привет, я новичок в D3, и я не могу найти ни одного примера макета силы d3, в котором есть барьеры, являющиеся путями. Я думаю что-то вроде этого.
вот так, но неправильная граница, а не коробка. https://bl.ocks.org/mbostock/1129492
Я не понимаю, почему это невозможно, код, используемый в примере:
function tick() {
node.attr("cx", function(d) { return d.x = Math.max(radius, Math.min(width - radius, d.x)); })
.attr("cy", function(d) { return d.y = Math.max(radius, Math.min(height - radius, d.y)); });
просто устанавливает максимальное и минимальное значения для центра узлов (cx и cy). Поэтому, если вы можете написать уравнение, представляющее форму ребра, которое вы хотите создать, вы сможете содержать узлы внутри этой формы.
Трудность может заключаться в отражении формы на другой стороне svg.
Что-то типа:
function tick() {
node.attr("cx", function(d) { return function(d){
d.x = Math.max(radius, Math.min(d3.select(this).attr("cy")- radius, d.x)); }}
.attr("cy", function(d) { return d.y = Math.max(radius, Math.min(height - radius, d.y)))
}
Я думаю, что это должно создать диагональную линию с правой стороны с градиентом 1: 1, но, очевидно, это не проверено, и это может значительно замедлить силу.