Anforderungen
1.Alle Söhne müssen linksbündig sein
2.Alle Töchter müssen rechtsbündig sein
3.Die gesamte Familie jedes Kindes (Kind → Ehepartner → Nachkommen) sollte als ein vertikaler Block behandelt werden
4.Wenn die Familie des ersten Sohnes endet, beginnt die Familie des zweiten Sohnes direkt darunter
5.Gleiche vertikale Stapellogik gilt für Tochterknoten
6.Eltern stellen über einen einzelnen Mittelpunkt eine Verbindung zu Kindern her und verzweigen dann zu untergeordneten Knoten Hinweis: Ich habe ein Referenzbild angehängt, das die erwartete Ausgabe zeigt. Was ich versucht habe
Ich berechne Positionen manuell mithilfe von Rekursion und verfolge Y-Offsets.
Der Code unten ist ein minimal reproduzierbares Beispiel, das die Layoutlogik demonstriert. Minimal reproduzierbares Beispiel
[b]Anforderungen[/b] 1.Alle Söhne müssen linksbündig sein 2.Alle Töchter müssen rechtsbündig sein 3.Die gesamte Familie jedes Kindes (Kind → Ehepartner → Nachkommen) sollte als ein vertikaler Block behandelt werden 4.Wenn die Familie des ersten Sohnes endet, beginnt die Familie des zweiten Sohnes direkt darunter 5.Gleiche vertikale Stapellogik gilt für Tochterknoten 6.Eltern stellen über einen einzelnen Mittelpunkt eine Verbindung zu Kindern her und verzweigen dann zu untergeordneten Knoten [b]Hinweis:[/b] Ich habe ein Referenzbild angehängt, das die erwartete Ausgabe zeigt. [b]Was ich versucht habe[/b] Ich berechne Positionen manuell mithilfe von Rekursion und verfolge Y-Offsets. Der Code unten ist ein minimal reproduzierbares Beispiel, das die Layoutlogik demonstriert. [b]Minimal reproduzierbares Beispiel[/b] [code]
// calculate height of an entire family block function familyHeight(person) { let h = nodeH; if (person.children) { person.children.forEach(c => { h += familyHeight(c) + vGap; }); } return h; }
// recursive layout function layoutFamily(person, x, y, parentMid) { const node = { ...person, x, y }; nodes.push(node);
if (parentMid) { links.push({ x1: parentMid.x, y1: parentMid.y, x2: x, y2: y }); }
if (!person.children) return y + nodeH + vGap;
let cy = y + nodeH + vGap; person.children.forEach(child => { cy = layoutFamily(child, x, cy, { x, y }); });
Ich stecke in einem Projekt, das ich mache, vor einer etwas seltsamen Aufgabe. Das Projekt handelt von einer Familie und ein Abschnitt zeigt den Stammbaum. Dieser Stammbaum wurde zuvor von Hand...
Gegebene Aufgabe: Methoden der BitArray-Klasse in C++ schreiben. Testen Sie jede dieser Methoden mit dem Google-Test. Hier ist der Code, den ich geschrieben habe (vollständige Auflistung, falls der...
Ich habe CodeLite installiert und wurde zu Recht angewiesen, MinGW zu installieren. Ich habe MinGW genau dort installiert, wo CodeLite es vorschlägt/verlinkt, und dort lief alles gut. Ich klicke dann...
Ich habe ein Basar -Problem mit meinem Projekt im Zusammenhang mit den SignalR -Ereignissen und JQuery. Für den Anfang ist mein Client -Projekt mit Vue 3 (W/Komposition -API), Vite, Pinia, SignalR...
Ich muss einen Stammbaum in PHP und MySQL erstellen. Ich bin ziemlich überrascht über den Mangel an anpassbarer Open-Source-HTML-Software zum Erstellen von Stammbäumen, aber ich schweife ab. Ich habe...