这是我的状态树的简化版本:
{
"radius": 8,
"nodes": [
{ "id": 1, "x": 10, "y": 10 },
{ "id": 2, "x": 15, "y": 10 },
{ "id": 3, "x": 20, "y": 10 }
]
}
Run Code Online (Sandbox Code Playgroud)
基本上,我有一个节点列表,每个节点都有一个x和一个y.我还有一个半径数,用于计算哪个其他节点在一个节点的半径范围内,即近邻.
我需要我的州看起来像这样:
{
"radius": 8,
"nodes": [
{ "id": 1, "x": 10, "y": 10, "neighbors": [2] },
{ "id": 2, "x": 15, "y": 10, "neighbors": [1, 3] },
{ "id": 3, "x": 20, "y": 10, "neighbors": [2] }
]
}
Run Code Online (Sandbox Code Playgroud)
邻居的计算相当昂贵,所以如果其中一个节点位置发生变化,我真的只想计算它.
我查看了使用的选择器,但我不确定选择器是否有效.为了导出给定节点的邻居,我需要整个节点列表和半径.如果我将整个节点列表传递给选择器,则选择器将重新计算节点集合中的任何内容是否已更改.我只需要重新计算任何节点的x或y值是否已更改.请注意,除了x和 …