1

在过去有人问过这个问题,我从阅读更好的算法中了解到。这次我已经开发了,但是我在某个地方有错误。这是我一直在使用的功能,它们是 7 个多边形,每个都有一个分配的值(userdata.value)。应用公式,但由于某种原因不起作用。

所需的结果类似于以下内容:http: //prag.ma/code/d3-cartogram/#netmigrate/2011

这是尝试应用的算法(本文第 7 页): http: //postimg.org/image/dvok6g9ij/

这可能会在以下论文中得到更多解释:http: //lambert.nico.free.fr/tp/biblio/Dougeniketal1985.pdf 所以我定义了每个多边形(7个多边形)

Hexagongeometry[0] = new THREE.Geometry(); 
Hexagongeometry[0].vertices.push(new THREE.Vector3(3,  3, 0.0)); 
Hexagongeometry[0].vertices.push(new THREE.Vector3( 6,  5, 0.0)); 
Hexagongeometry[0].vertices.push(new THREE.Vector3( 9,  3, 0.0)); 
Hexagongeometry[0].vertices.push(new THREE.Vector3( 9,  0, 0.0)); 
Hexagongeometry[0].vertices.push(new THREE.Vector3( 6,  -3, 0.0));
Hexagongeometry[0].vertices.push(new THREE.Vector3( 3,  0, 0.0));
Hexagongeometry[0].vertices.push(new THREE.Vector3( 3,  3, 0.0));

hexagonMesh[0].userData={value:1};  //value of polygon
hexagonMesh[0].position.set(1.5, 0.0, 4.0); 
hexagonMesh[0].geometry.verticesNeedUpdate=true;

在这里,我应用了公式:

http://jsfiddle.net/3ks3bx3s/

在这里,我根据我的理解应用了算法。

希望我能提供帮助,我真的研究了解决方案,但我还不能。

4

0 回答 0