Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止图像旋转到d3径向树上的SVG圆中_Javascript_Svg_D3.js - Fatal编程技术网

Javascript 防止图像旋转到d3径向树上的SVG圆中

Javascript 防止图像旋转到d3径向树上的SVG圆中,javascript,svg,d3.js,Javascript,Svg,D3.js,我使用的是一个d3js简单的树形径向图,我在深度1上添加了额外的带有SVG图像的圆,但是图像被转换并旋转到圆的位置 我如何保持或旋转图像以查看原始位置(表示垂直模式) 这是我的伪代码: var pubs={ “名称”:“AUT-1”, “儿童”:[{ “名称”:“PUB-1”, “儿童”:[{ “名称”:“AUT-11”, “儿童”:[{ “名称”:“AFF-111” }, { “名称”:“AFF-112” }] }, { “名称”:“AUT-12”, “儿童”:[{ “名称”:“AFF-12

我使用的是一个d3js简单的树形径向图,我在深度1上添加了额外的带有SVG图像的圆,但是图像被转换并旋转到圆的位置

我如何保持或旋转图像以查看原始位置(表示垂直模式)

这是我的伪代码:

var pubs={
“名称”:“AUT-1”,
“儿童”:[{
“名称”:“PUB-1”,
“儿童”:[{
“名称”:“AUT-11”,
“儿童”:[{
“名称”:“AFF-111”
}, {
“名称”:“AFF-112”
}]
}, {
“名称”:“AUT-12”,
“儿童”:[{
“名称”:“AFF-121”
}]
}, {
“名称”:“AUT-13”,
“儿童”:[{
“名称”:“AFF-131”
}, {
“名称”:“AFF-132”
}]
}, {
“名称”:“AUT-14”,
“儿童”:[{
“名称”:“AFF-141”
}]
}]
}, {
“名称”:“PUB-2”,
“儿童”:[{
“名称”:“AUT-21”
}, {
“名称”:“AUT-22”
}, {
“名称”:“AUT-23”
}, {
“名称”:“AUT-24”
}, {
“名称”:“AUT-25”
}, {
“名称”:“AUT-26”
}, {
“名称”:“AUT-27”
}, {
“名称”:“AUT-28”,
“儿童”:[{
“名称”:“AFF-281”
}, {
“名称”:“AFF-282”
}, {
“名称”:“AFF-283”
}, {
“名称”:“AFF-284”
}, {
“名称”:“AFF-285”
}, {
“名称”:“AFF-286”
}]
}]
}, {
“名称”:“PUB-3”
}, {
“名称”:“PUB-4”,
“儿童”:[{
“名称”:“AUT-41”
}, {
“名称”:“AUT-42”
}, {
“名称”:“AUT-43”,
“儿童”:[{
“名称”:“AFF-431”
}, {
“名称”:“AFF-432”
}, {
“名称”:“AFF-433”
}, {
“名称”:“AFF-434”,
“儿童”:[{
“名称”:“ADD-4341”
}, {
“名称”:“ADD-4342”
}, ]
}]
}, {
“名称”:“AUT-44”
}]
}, {
“名称”:“PUB-5”,
“儿童”:[{
“名称”:“AUT-51”,
“儿童”:[{
“名称”:“AFF-511”
}, {
“名称”:“AFF-512”
}, {
“名称”:“AFF-513”
}, {
“名称”:“AFF-514”
}, {
“名称”:“AFF-515”
}, {
“名称”:“AFF-516”
}]
}, {
“名称”:“AUT-52”
}, {
“名称”:“AUT-53”
}, {
“名称”:“AUT-54”
}, {
“名称”:“AUT-55”,
“儿童”:[{
“名称”:“AFF-551”
}, {
“名称”:“AFF-552”
}, {
“名称”:“AFF-553”
}, {
“名称”:“AFF-554”
}]
}, {
“名称”:“AUT-56”
}, {
“名称”:“AUT-57”
}, {
“名称”:“AUT-58”
}, {
“名称”:“AUT-59”
}, {
“名称”:“AUT-591”
}, {
“名称”:“AUT-592”
}, {
“名称”:“AUT-593”
}, {
“名称”:“AUT-594”
}, {
“名称”:“AUT-595”
}, {
“名称”:“AUT-596”
}]
}, {
“名称”:“PUB-6”,
“儿童”:[{
“名称”:“AUT-61”,
“儿童”:[{
“名称”:“AFF-611”
}, {
“名称”:“AFF-612”
}, {
“名称”:“AFF-613”
}, {
“名称”:“AFF-614”,
“儿童”:[{
“名称”:“ADD-6141”
}, {
“名称”:“ADD-6142”
}, ]
}]
}, {
“名称”:“AUT-62”
}, {
“名称”:“AUT-63”
}, {
“名称”:“AUT-64”
}, {
“名称”:“AUT-65”
}, {
“名称”:“AUT-66”
}, {
“名称”:“AUT-67”
}, {
“名称”:“AUT-68”
}, {
“名称”:“AUT-69”
}]
}]
};
var直径=800;
var保证金={
前20名,
右:120,,
底数:20,
左:120
},
宽度=直径,
高度=直径;
var i=0,
持续时间=350,
根
var tree=d3.layout.tree()
.尺寸([360,直径/2-80])
.分离(功能(a、b){
返回(a.parent==b.parent?1:10)/a.depth;
});
var diagonal=d3.svg.diagonal.radial()
.投影(功能(d){
返回[d.y,d.x/180*Math.PI];
});
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度)
.附加(“g”)
.attr(“转换”、“平移”(“+diameter/2+”,“+diameter/2+”));
根=酒吧;
root.x0=高度/2;
root.y0=0;
//root.children.forEach(折叠);//从所有的孩子开始
更新(根);
d3.选择(self.frameElement).style(“高度”,“800px”);
函数更新(源){
//计算新的树布局。
变量节点=树节点(根),
链接=树。链接(节点);
//为固定深度进行规格化。
nodes.forEach(函数(d){
d、 y=d.深度*80;
});
//更新节点…
var node=svg.selectAll(“g.node”)
.数据(节点、功能(d){
返回d.id | |(d.id=++i);
});
//在父节点的上一个位置输入任何新节点。
var nodeEnter=node.enter().append(“g”)
.attr(“类”、“节点”)
//.attr(“转换”,函数(d){return”旋转(“+(d.x-90)+”)平移(“+d.y+”);})
。开启(“点击”,点击);
nodeEnter.append(“圆”)
.attr(“r”,1e-6)
.样式(“填充”,功能(d){
控制台日志(d.深度);
返回d.#儿童?“淡蓝色”:“fff”;
});
节点过滤器(功能(d){
返回d.depth==1;
})
.附加(“圆圈”)
.attr(“r”、“1.2米”)
.样式(“填充”、“灰色”)
.attr(“类”,函数(d){
返回“圆+深度”
})
.attr(“id”、“圆圈组”)
.attr(“笔划”,“#CCC”)
.attr(“笔划宽度”,2)
.attr(“指针事件”、“无”)
.style(“填充”、“url(#组#u头像)”);
节点过滤器(功能(d){
返回(d.depth==1);
})
.append(“svg:pattern”)
.attr(“id”、“群组化身”)
.attr(“宽度”,24)
.attr(“高度”,24)
.attr(“patternUnits”、“objectBoundingBox”)
.append(“svg:image”)
.attr(“xlink:href,”https://openclipart.org/image/32px/svg_to_png/168481/avatar-icon-silhouette-1.png")
.attr(“类”、“圈”化身)
.attr(“宽度”,24)
.attr(“高度”,24)
.attr(“x”,0)
.attr(“y”,0);
nodeEnter.append(“文本”)
.attr(“x”,10)
.attr(“dy”,“.35em”)
.attr(“文本锚定”、“开始”
nodeUpdate.selectAll(".circle_1").attr("transform", function(d) {
  return "rotate(" + (-1 * d.x + 90) + ")";
});