Graph layout van een leien dakje en met wat betere uitleg is het gewoon appeltje eitje.

Het gml4gtk programma maakt tekeningen hoe onderwerpen of dingen met elkaar te maken hebben maar dan automatisch en de invoer is een tekst met welke onderwerpen met elkaar te maken hebben.

Als onderwerp "a" te maken heeft met onderwerp "b" dan zijn dat in de tekening vierkanjes "a" en "b" met een lijn daartussen om te laten zien dat "a" en "b" met elkaar te maken hebben en als "b" te maken heeft met "c" dan is er een langere lijn van "a" naar "b" naar "c" van boven naar beneden.

Omdat er geen lijn is naar "a" zet het programma het vierkanje "a" aan de bovenkant van de tekening
en de onderwerpen "b" en "c" steeds een niveau lager in de tekening en dat zijn de "levels" in de tekening. (Dit heet dfs algorithme)

Als er meerdere van zulke onafhankelijk lijnen zijn komen die gewoon naast elkaar in de tekening maar als er verbanden zijn tussen die lijnen ontstaan er kruisende lijnen en een rommelige tekening.

Voor die situatie doet het programma een andere stap door meerdere malen de tekening te bekijken van boven naar beneden en weer terug en te berekenen hoeveel kruisende lijnen er zijn.

Bij elke stap per niveau gaat het programma kijken naar de vierkantjes met een letter, de nodes, op dat niveau  en berekend een nieuwe positie voor die node door het gemiddelde te nemen van de vierkantjes die verbonden zijn met de vierkantjes op een  op een niveau hoger of gemiddelde van een niveau lager.

Daardoor onstaat een nieuwe tekening met een ander aantal kruisende lijnen omdat de positie van de vierkantjes in de tekening anders is geworden en door dat te vergelijken met een bewaarde kopie van een vorige versie gaat het programma door met de nieuwe tekening of met de oude tekening.

Als de vierkanjes dezelfde gemiddlede waarde hebben dan worden de vierkanjes verwisseld van positie.

Dit heet barycenter algoritme.

Hierna komt het aan op nog wat meer stappen om de uiteindelijke tekening te bepalen en het hangt af van de hoeveelheid tekening software hoe mooi de eindresultaat tekening is.

Nou, dit was het dan en het is hopelijk appeltje eitje.

Zie ook wikipedia voor meer theorie: https://nl.wikipedia.org/wiki/Grafentheorie

Do not translate this page to english because is has typical dutch expressions as "appeltje eitje"
and "van een leien dakje" which cannot be translated to english and it means "it is not difficult".

update: google translate knows to translate it correctly as "if it goes without a hitch, it's a piece of cake"