Ik heb een AutoCAD plugin wat van een in de tekening aanwezig leidingnetwerk de begin en eindpunten van de leidingen uitleest en dit omzet naar een lijn object.
De plugin leest de leidingen uit de database in de volgorde zoals deze zijn aangemaakt.
Zolang de leidingen netjes van punt A naar B zijn getekend is het geen probleem om een gesloten lijn te maken van de diverse leidingen. Echter komt het wel eens voor dat er een stuk leiding gewijzigd moet worden waardoor deze opnieuw aan de database wordt toegevoegd. Doordat dan bij het uitlezen de coordinaten niet doorlopen worden het meerdere afzonderlijke lijnstukken.
Uitdaging
De uitdaging is nu, hoe bepaal ik de langste aan een gesloten lijn uit een serie coordinaten.
voorbeeld
Hieronder een schematische weergave van het rioolsysteem, met de coordinaten van de leidingen.

De leidingen uit het voorbeeld worden op dit moment ingelezen als 5 losse lijnen.
Lijn 1: (1, 2, 3)
Lijn 2: (4)
Lijn 3: (5)
Lijn 4: (6)
Lijn 5: (7, 8 )
Het zou wenselijk zijn om het systeem als 3 lijnen in te lezen.
Lijn 1: (6, 5 , 1, 2, 3)
Lijn 2: (4)
Lijn 3: (7, 8 )
Alle coordinaten van het rioolsysteem sla ik op in een Dictionary.
Wie kan mij vertellen waar ik moet beginnen om uit de lijst van coordinaten de langste aan een gesloten lijn te genereren.
De plugin leest de leidingen uit de database in de volgorde zoals deze zijn aangemaakt.
Zolang de leidingen netjes van punt A naar B zijn getekend is het geen probleem om een gesloten lijn te maken van de diverse leidingen. Echter komt het wel eens voor dat er een stuk leiding gewijzigd moet worden waardoor deze opnieuw aan de database wordt toegevoegd. Doordat dan bij het uitlezen de coordinaten niet doorlopen worden het meerdere afzonderlijke lijnstukken.
Uitdaging
De uitdaging is nu, hoe bepaal ik de langste aan een gesloten lijn uit een serie coordinaten.
voorbeeld
Hieronder een schematische weergave van het rioolsysteem, met de coordinaten van de leidingen.

De leidingen uit het voorbeeld worden op dit moment ingelezen als 5 losse lijnen.
Lijn 1: (1, 2, 3)
Lijn 2: (4)
Lijn 3: (5)
Lijn 4: (6)
Lijn 5: (7, 8 )
Het zou wenselijk zijn om het systeem als 3 lijnen in te lezen.
Lijn 1: (6, 5 , 1, 2, 3)
Lijn 2: (4)
Lijn 3: (7, 8 )
Alle coordinaten van het rioolsysteem sla ik op in een Dictionary.
Visual Basic .NET:
1
| Dim dictPoints As Dictionary(Of Integer, Point3d) |
Wie kan mij vertellen waar ik moet beginnen om uit de lijst van coordinaten de langste aan een gesloten lijn te genereren.