- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用VivaGraphJS创建我的动态图表,并在数据进入时不断更新。问题是 VivaGraph默认情况下没有我需要的圆形布局。
我遇到了circular layout在 cytoscape.js我想将其移植到 VivaGraph。我无法完全理解要进行哪些更改才能移植到 VivaGraph。如果您能帮助我并指导我完成它,我将不胜感激。谢谢:)
此外,这是我需要的算法,因为交叉的数量对我来说并不重要。
function CircularLayout(width, height)
{
this.width = width;
this.height = height;
}
/**
* Spreads the vertices evenly in a circle. No cross reduction.
*
* @param graph A valid graph instance
*/
CircularLayout.prototype.layout = function(graph)
{
/* Radius. */
var r = Math.min(this.width, this.height) / 2;
/* Where to start the circle. */
var dx = this.width / 2;
var dy = this.height / 2;
/* Calculate the step so that the vertices are equally apart. */
var step = 2*Math.PI / graph.vertexCount;
var t = 0; // Start at "angle" 0.
for (var i = 0; i<graph.vertices.length; i++) {
var v = graph.vertices[i];
v.x = Math.round(r*Math.cos(t) + dx);
v.y = Math.round(r*Math.sin(t) + dy);
t = t + step;
}
}
最佳答案
您可以使用常量布局并自行计算圆形布局的位置。下面的代码示例,
var gen = new Viva.Graph.generator();
var graph = gen.balancedBinTree(5);
var layout = Viva.Graph.Layout.constant(graph);
var nodePositions = generateNodePositions(graph,200);
layout.placeNode(function(node) { return nodePositions[node.id-1];});
renderer = Viva.Graph.View.renderer(graph,{ layout : layout });
renderer.run();
renderer.reset();
function generateNodePositions(graph,radius) {
var nodePositions=[];
var n = graph.getNodesCount();
for (var i=0; i<n; i++) {
var pos = {
x:radius*Math.cos(i*2*Math.PI/n),
y:radius*Math.sin(i*2*Math.PI/n)
}
nodePositions.push(pos);
}
return nodePositions;
}
关于javascript - VivaGraphJS 中的圆形布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18058806/
我正在使用 vivagraphJS 通过 webGL 绘制链接数据。当我将鼠标悬停在节点上时,我会绘制该节点的每个链接。当我鼠标移出该节点时,我想删除这些链接。所以,这是我的代码: function
我正在使用VivaGraphJS创建我的动态图表,并在数据进入时不断更新。问题是 VivaGraph默认情况下没有我需要的圆形布局。 我遇到了circular layout在 cytoscape.js
如何为 VivaGraphJS 图表中的链接指定权重?例如。我想要得到一个最终的社交图表,其中已婚夫妇的显示距离比那些不太熟悉的人更近。 使用springLength,我可以定义一般距离,但每个链接都
我非常喜欢Vivagraph JS .话虽如此,我遇到了一个 pickle,它可能是特定于 WebGL 的。 我正在尝试: var graph = Viva.Graph.graph(); va
我用 VivaGraphJS 创建了一个图表,一切都很好,但图表在移动。有一个关于 constantLayout 的例子,但你应该为每个节点指定一个位置的问题。 代码如下:
我已经让自己陷入了一个巨大而奇怪的境地。我用VivaGraph JS用于绘图Conceptual Graphs在浏览器中。我使用的具体实现依赖于 SVG,因此我的主图 DOM 元素是 SVG。 在节点
我是一名优秀的程序员,十分优秀!