Abstandsstrafe fuer getrennte Gruppen + Verbindungslinien-Optionen

- strafen.cfg: neuer optionaler Abschnitt [Abstand] mit Faktor je
  normierter Abstandseinheit (0..100, bezogen auf die max. Ausdehnung
  der Tischanordnung)
- Strukturdaten.py: Strafliste.AbstandFaktor, gibPunkte('Abstand',...),
  bewerten() bestraft den max. Tisch-Tisch-Abstand getrennter Gruppen;
  abwaertskompatibel (fehlt der Abschnitt -> Faktor 0)
- platz.py: --show-/--hide-connections steuern die Verbindungslinien
  getrennter Gruppen in der SVG
- work/*, doc/images/*: Beispiele neu durchgerechnet

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Michael Stangl
2026-07-11 13:47:27 +02:00
parent 98b1dc4f36
commit 4f87895303
18 changed files with 1540 additions and 1379 deletions
+10 -1
View File
@@ -28,6 +28,15 @@ if __name__ == '__main__':
help="zusaetzlich eine Sitzplatzverteilung.svg im --indir Verzeichnis "
"erzeugen (Tische als weisse Kreise, Personen als farbige "
"Kreise je Gruppe)" )
parser.add_option( "--show-connections", dest="showconn", action="store_true",
default=True,
help="in der Sitzplatzverteilung.svg jede ueber mehrere Tische "
"getrennte Gruppe mit einer Linie in ihrer Gruppenfarbe "
"verbinden (Vorgabe: an; nur mit --tosvg wirksam)" )
parser.add_option( "--hide-connections", dest="showconn",
action="store_false",
help="die Verbindungslinien getrennter Gruppen in der "
"Sitzplatzverteilung.svg nicht zeichnen" )
parser.add_option( "--show-development", dest="showdev", action="store_true",
default=False,
help="zusaetzlich eine Entwicklung.svg im --indir Verzeichnis "
@@ -88,7 +97,7 @@ if __name__ == '__main__':
print(S)
S.speichern( AusgabeTP, AusgabePT )
if options.tosvg:
S.alsSVG( AusgabeSVG )
S.alsSVG( AusgabeSVG, Verbindungen=options.showconn )
if options.showdev:
F1.Entwicklung.alsSVG( AusgabeEntwicklung )
print( "Entwicklungsverlauf geschrieben:", AusgabeEntwicklung )