Forum Discussion
Change the connecting point of an arrow head ?
- Nov 06, 2022
I had wondered whether to send you a copy of a program I wrote years ago (2014) to analyse diagrams and plot fragments of the graph dynamically. The problem is that it would take me a week to remember and get to grips with the techniques I used, so I am not sure how you would fare.
It uses Class modules for the Graph object itself and for the GraphNode and GraphEdge collections that comprise it. In your case, that might mean having a Class 'FamilyTree' with methods to Add people as instances of the Person class. Each oPerson ('o' for Object) might have properties such as '.Name', '.DOB' and relationships such as .Parent, .Partner, .EldestChild or .Sibling that have other objects from the Person Class as their values.
If that isn't bad enough, I also adopted someone else's central error checking code, so every module starts with standard set of module name identifiers and initialises the error variable to show an error unless the module subsequently reaches the 'success' setting.
It is odd how one's own past work can lie so far outside one's comfort zone!
Too I use the ToolTip of the shapes in Excel to show infos - the couple symbol show date/place for the marriage and of minor value - the arrows have ToolTips too.
I now have to look for a implementable algorythm for building the tree ... 😉
I had wondered whether to send you a copy of a program I wrote years ago (2014) to analyse diagrams and plot fragments of the graph dynamically. The problem is that it would take me a week to remember and get to grips with the techniques I used, so I am not sure how you would fare.
It uses Class modules for the Graph object itself and for the GraphNode and GraphEdge collections that comprise it. In your case, that might mean having a Class 'FamilyTree' with methods to Add people as instances of the Person class. Each oPerson ('o' for Object) might have properties such as '.Name', '.DOB' and relationships such as .Parent, .Partner, .EldestChild or .Sibling that have other objects from the Person Class as their values.
If that isn't bad enough, I also adopted someone else's central error checking code, so every module starts with standard set of module name identifiers and initialises the error variable to show an error unless the module subsequently reaches the 'success' setting.
It is odd how one's own past work can lie so far outside one's comfort zone!
- keldsorNov 06, 2022Brass ContributorLOL !
I too know that problem way too well !
I think I'll have to work with this 'manual' building of the tree for a while ... just to experience what problems comes up !
MAYBE I can work out an algorythm working very systematically - but time will show !
I think I remember from my math-lectures, it should be possible to make a tree completely flat = no crossing arrows - so I'll try that manually in the first place.
In the longer run it would be nice to start that algorythm i MSAccess and then switch to the worksheet in Excel to see the magic building the tree automatically !