0

我正在使用 80 到 1000 个节点的网络时,我意识到节点被颠倒了。

我的意思是,第一象限被画在第四象限应该在的地方。所以我决定只使用四个节点,看看会发生什么,结果是这样的: 结果是这样的。 每个节点属于不同的象限。它们是 (50,50);(-50,50);(-50,-50) 和 (50,-50)。

我正在使用“预设”布局,预计可以正确渲染它们(如在笛卡尔平面中)。我只使用最新版本的“cytoscape.min.js”。

有问题的javascript:

var cy = window.cy = cytoscape({
container: document.getElementById('cy'),
layout: { name: 'preset'}, 
 elements: [ 
{data: { id: '(0,0)'}, position: { x: 0, y: 0 }},
{data: { id: '++'}, position: { x: 50, y: 50 }},
{data: { id: '+-'}, position: { x: 50, y: -50 }},
{data: { id: '--'}, position: { x: -50, y: -50 }},
{data: { id: '-+'}, position: { x: -50, y: 50 }},

],
 style: [ 
    {
      selector: 'node',
      style: {
            'content': 'data(id)',
            'width': '2',
            'height': '2',
            'color': '#000',
            'font-size': '10',
            'opacity': 0.9,
            'shape': 'ellipse',
            'z-index': '9999'
      }
    },
],

});

现在,这是预期的行为,我正在使用错误的库吗?还是我错过了什么?

我已经尝试了所有布局选项。

4

1 回答 1

0

计算机图形使用笛卡尔坐标,但 y 轴是倒置的。这只是计算机上的约定。

请参阅https://gamedev.stackexchange.com/questions/83570/why-is-the-origin-in-computer-graphics-coordinates-at-the-top-left

另请注意,平移和缩放会影响变换矩阵,因此原点并不总是相同的屏幕位置。

于 2016-09-22T19:25:24.573 回答