我想用d3.js代表一个家谱树,用于Fanview,例如在这篇文章中: http://www.cs.utah.edu/~draperg/research/fanchart/draperg_FHT08.pdf
一个人是中心,他的父母是围绕它的两个弧,然后是他们的父母,等等。
我设法使用“平面”数据对此进行编码,但是我用这个做了更复杂的事情,当我想以交互方式操作数据和动画时,它变得非常慢。所以我尝试使用层次结构。我设法将数据转换为树并将其显示为分区。当两个父母都知道时,一切正常。然而,当只知道其中一个父母时,它必须只使用孩子的弧度的一半。我可以在一定程度上用价值来欺骗这个。问题是单个母亲必须在弧的末端移位。因此我的问题是:我可以根据某些标准调整一些数据吗?我是否必须编写新的层次结构表示法?
为了解决这个问题,有一个名为SOSA的编号系统。根是1,他的父亲2,母亲3,然后祖父母是4,5,6和7.递归关系是:SOSA(父(X))= 2 * SOSA(X)和SOSA(母亲(X) )= 2 * SOSA(X)+ 1