我正在寻找几何算法的具体来源;
像两条线交叉等简单的东西很容易(并且很容易找到),但是我想找到一些算法来处理更棘手的事情,例如找到通过扩展给定多边形一定量形成的形状; 具有弯曲边等形状的快速算法
任何好的提示?谢谢!
嗨,我想知道是否有人知道是否可以将slickgrid中的列定义为下拉选择列表.如果不是,那些对slickgrid有一定经验的人知道我应该如何添加这个选项吗?
谢谢
我想知道是否有一种简单的方法来修改Sankey图示例,以便顺利过渡到新数据.例如,假设我有不同的数据文件(energy1.json,energy2.json ...)d3如何绘制第一个数据集的Sankey图,然后等待并稍后重新排列框处置以表示第二个数据集?
我一直在研究修改后的力导向图,并且在链接没有正确对齐节点的链接上添加文本/标签时遇到一些问题.怎么解决?
以及如何向SVG文本元素添加事件侦听器?添加.on("dblclick",function(d) {....}只是不起作用.
这是代码片段:
<style type="text/css">
.link { stroke: #ccc; }
.routertext { pointer-events: none; font: 10px sans-serif; fill: #000000; }
.routertext2 { pointer-events: none; font: 9px sans-serif; fill: #000000; }
.linktext { pointer-events: none; font: 9px sans-serif; fill: #000000; }
</style>
<div id="canvas">
</div>
<script type="text/javascript" src="d3/d3.js"></script>
<script type="text/javascript" src="d3/d3.layout.js"></script>
<script type="text/javascript" src="d3/d3.geo"></script>
<script type="text/javascript" src="d3/d3.geom.js"></script>
<script type="text/javascript">
var w = 960,
h = 600,
size = [w, h]; // width height
var vis = d3.select("#canvas").append("svg:svg")
.attr("width", …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的D3示例,首先将数据读入关联数组,然后将其显示在条形图中.
我似乎无法使用此方法显示任何内容.相反,我必须在两者之间插入一个任务:将数据读入关联数组,将数据复制到一个简单数组中,然后使用简单数组显示条形图.
chart.selectAll("div")
.data(genreAssociative)
.enter().append("div")
.style("width", function(d) { return d * 10 + "px"; })
.text(function(d) { return d; });
Run Code Online (Sandbox Code Playgroud)
以上不起作用.
genreSimple = [];
for (var genre in genreAssociative) genreSimple.push(genreAssociative[genre]);
chart.selectAll("div")
.data(genreSimple)
.enter().append("div")
.style("width", function(d) { return d * 10 + "px"; })
.text(function(d) { return d; });
Run Code Online (Sandbox Code Playgroud)
以上呢; 使用简单的数组作为中介.是否有一种特殊的方法来迭代关联数组而不是标准数组?
你可以在这个bl.ock http://bl.ocks.org/3012590中看到巴黎有许多地理参考点,小圈子上面有一个大圆圈:

我想得到类似于http://vallandingham.me/vis/gates/的东西,这样圆圈就会被它的边界紧密附加.

对不起,我在这段代码中找不到答案,我想错了.
是否有一个简单的解决方案来获得它?尝试了不同的负电荷力,如果圆形尺寸发生变化会导致问题(如果巴黎的所有圆圈都变得很小,那么它们会相互走得太远)?
我正在使用其中一个强制布局示例(http://bl.ocks.org/1153292)在我的网站上显示一个网络.
我允许用户在任何给定时间选择要查看的链接类型.我注意到当我选择查看链接类型A,然后添加链接类型B然后删除链接类型A时,类型B的剩余链接将显示A颜色.
这是运行以添加到svg图的链接的代码.我正在this.links通过添加和删除它的链接来更改阵列.正如您所看到的,我设置了class属性但它没有更新 - 它仍然是链接A的类型.
var path = svg.append("svg:g")
.selectAll("path")
.data(this.links)
.enter()
.append("svg:path")
.attr("class", function(d) { return "link " + d.type; })
.attr("marker-end", function(d) { return "url(#" + d.type + ")"; });
Run Code Online (Sandbox Code Playgroud)
我目前通过更新tick函数内的class属性来解决这个问题,但这当然会导致很多不需要的工作.
我读到,enter操作返回已存在元素和新元素的合并选择,因此attr操作应更新存在元素并设置新元素.
我错过了什么?
我想回应针对力布局中节点的击键事件.我已经尝试添加我能想到的"击键","按键","键盘","键盘"的所有变体,但它们都没有发射.我的鼠标事件很好.我在d3源代码中找不到任何击键事件....有没有办法捕捉击键?
nodes.enter().append("circle")
.on("click", function(d) { return d.clickHandler(self); })
.on("mouseover", function(d) { return d.mouseOverHandler(self); })
.on("mouseout", function(d) { return d.mouseOutHandler(self); })
.on("keyup", function(d) {
console.log("keypress", d3.event); // also tried "keyup", "keydown", "key"
})
.classed("qNode", true)
.call(force.drag);
Run Code Online (Sandbox Code Playgroud) 我正在使用nvd3.js并尝试添加点击事件
d3.selectAll(".nv-bar").on('click', function () {console.log("test");});
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?
d3.js ×7
force-layout ×4
javascript ×2
algorithm ×1
drawing ×1
events ×1
geometry ×1
jquery ×1
json ×1
label ×1
nvd3.js ×1
python ×1
slickgrid ×1
svg ×1
tablecolumn ×1
transition ×1