Несколько партнеров в генеалогическом древе в d3.js?

I имеет генеалогическое древо от Кирилл удивительный ответ, но я пытаясь понять, как настроить его для поддержки нескольких партнеров. В этом случае я добавил "Mistress" node и пытаюсь обозначить, что у "Mistress" и "John" был ребенок с именем "Скрытый сын".

Текущая структура данных работает следующим образом:

введите описание изображения здесь

В этом случае объект root хранит все. Он имеет массив children, который содержит большинство "поколений" без родителей. Он также содержит объект, содержащий дочерние элементы этих узлов/узлов. В приведенном выше примере это root.children[2].

Я думаю, что мне пришлось бы реорганизовать структуру данных children и ввести информацию о том, кто из родителей, из которых родился ребенок. Просто имея проблемы с концептуализацией этого, а также с линией

В конце было бы что-то вроде этого, кроме любовницы было бы с левой стороны:

введите описание изображения здесь

Ответ 1

@спасибо за благодарность!

Для этого я добавил скрытый node между john и любовницей.

И добавил ребенка к этому скрытому node, поэтому кажется, что у john и любовницы есть ребенок "Скрытый сын", Таким образом, JSON выглядит как

{
    name: "Mistress",
    id: 9000,
    no_parent: true
  }, {
    name: "",//this is the new node between Mistress and John
    id: 100,
    no_parent: true,//it has no parents
    hidden: true,
    children: [{
      // so this hidden node will have a child 
      // which will make it appear as if john and mistress has a child.
      name: "Hidden Son",
      id: 9001
    }]
  }, {
    name: "John",
    id: 16,
    no_parent: true
  },

Рабочий код здесь

Надеюсь, это поможет!