Efectivamente la primera etapa es construir un Grafo, existen varios componentes gratuitos que te permiten construirlo, basta con leer la base de datos e ir añadiendo los nodos y las relaciones entre los nodos, en este caso las personas y sus relaciones.
Una vez tengas el grafo construido, es más fácil darte a la tarea de la pintada, aunque como todos mencionan no es tarea fácil, siempre hay trabajo en ello, y bastante trabajo, sin embargo si no quieres desgastarte y solo mostrarlos, es cuestión de priorizar o darle peso a cada nodo, te sugiero la siguiente manera:
1. Por cada relación que tenga un nodo se le asigna un punto al nodo, es decir, si ese nodo tiene 3 parientes relacionados a él, el peso será de 3. así al momento de pintar, deberás comenzar por los que tengan mayor peso y los de menor peso serán los últimos, que normalmente quedarán más lejos.
2. Crea una matriz imaginaria, donde en cada celda de la matriz cabrá solo un nodo, en el centro de la matriz irá el que mayor peso tenga y alrededor dibujarás los nodos más cercanos, igualmente con mayor peso y así sucesivamente, (tendrás que realizar algunos ajustes aquí, pero esa es la idea). solo un nodo en cada celda.
3. Debes tener una rutina para mover un nodo y todos sus compañeros cercanos, para abrir espacio, en caso que sea necesario.
4. La rutina de dibujado de las líneas, en la cual es prácticamente imposible evitar que se crucen, pero creo que podrías lograr algo interesante.
Todo esto con el manejo de Canvas.
Observaciones: Si lo que requieres es que después de pintado poder moverlos, ya es otra tarea diferente y en ese caso, realmente te recomiendo comprar un componente para eso, como el devart, que son excelente, y si hacen cuentas pues lo que le cuesta a la empresa tus horas de trabajo en ese proyecto, seguramente pagará con creces la compra del componente y ahorrarán mucho tiempo y esfuerzo.
Saludos.