首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >力有向图可重用性失效?

力有向图可重用性失效?
EN

Stack Overflow用户
提问于 2016-07-27 21:53:54
回答 1查看 46关注 0票数 1

首先:d3-版本:"version": "3.5.17"

我有两种不同的主题地图,一种比例符号地图和一种伪demers地图,其符号(圆圈,与比例符号相同)尽可能接近它的起源,包括碰撞检测和重力。

然而,我想动画的圆圈从比例符号地图到地图。特别是,我只想触发我的力有向图,用于碰撞检测和重力;这是第一次工作得很好。我提供了一个动画从地图到比例符号地图,其中每个符号只是移动回它的质心。现在,如果我想回过头来看地图,代码会失败,上面写着Uncaught TypeError: Cannot read property '1' of undefined,即使我第一次触发它的时间也是相同的。这是力的可重用性中的某种缺陷吗?或者是我这方面的错误?

这个问题可以在这里测试:https://particles-masterthesis.github.io/aggregation/;在左上角,您可以在比例符号和地图之间切换。

我使用的适当代码如下:case 'psm_cartogram': let psm = this.currentViz; information = { data: psm.nodes, symbols: psm.symbols }; upcomingViz.obj = this.canvas.drawCartogram( null, this.currentViz.constructor.name === "Cartogram", information, () => { this.currentViz.hide(false, true); this.fadeOutParticles(); } ); upcomingViz.type = 'cartogram'; resolve(upcomingViz); break;

关键部分是在information对象中,我在地图和比例符号映射之间共享相同的对象。

在地图中,我有以下重要代码:

代码语言:javascript
复制
```javascript

this.nodes = keepInformation.data;

this.node = keepInformation.symbols;

this.force

.nodes(this.nodes)

.on(“滴答”,this.tick.bind(这,0.0099))

.start();

代码语言:javascript
复制
...

```javascript

蜱(重力){

代码语言:javascript
复制
this.node
代码语言:javascript
复制
.each(this.gravity(gravity))
代码语言:javascript
复制
.each(this.collide(0.25))
代码语言:javascript
复制
.attr("cx", d => { return d.x; })
代码语言:javascript
复制
.attr("cy", d => { return d.y; });

}

重力(K){

代码语言:javascript
复制
return d => {
代码语言:javascript
复制
    d.x += (d.x0 - d.x) * k;
代码语言:javascript
复制
    d.y += (d.y0 - d.y) * k;
代码语言:javascript
复制
};

}

//碰撞函数不显示为简单的四叉树

代码语言:javascript
复制

如果有任何帮助,代码也可以在https://github.com/particles-masterthesis/aggregation/src/js/visualization/map上使用--主要代码是转换管理器和两种类型的映射。

我很感谢我能得到的任何建议和支持,即使这只是我可以查看的一个简单提示。

PS:

这是两个截图;第一个对cartogram:132的不同日志很重要,它是tick-function中的一个console.log(this.node),然后再做重力等等,第二个截图提到了错误。

要更好地理解第一个日志:它首先记录this.node中的刻度函数;然后触发对psm的可视化更改(cartogram_psm),然后更改地图,然后出现错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-02 16:05:36

好吧这样我就能解决我的问题了:

转换链在我的方式上是不正确的,因此,对象上的神秘属性出现了;

用此方法帮助重写所有转换(https://stackoverflow.com/a/17101823/1472902)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38623824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档