[Tiptoi] Darf ich vorstellen: TTSim -- svg hit-test + tttool play

Jonas Bähr jonas.baehr at web.de
Mi Sep 9 23:29:23 CEST 2020


Hallo zusammen,

Ich möchte Euch ein kleines Proof-of-Concept Projekt vorstellen: Ein browser-basiertes Front-End für `tttool play`.
	https://github.com/jbaehr/ttsim

Die Idee:
Ist das “TipToy Sheet” ein SVG, kann ich es im Browser darstellen, beim Klick via JavaScript herausfinden wo der Cursor (aka "der TipToy Stift”) steht und aus dem fill-pattern des Elements die OID auslesen. Diese wird dann an `tttool play` geschickt, welches die eigentliche Simulation übernimmt.

Vorteil:
  a) man muss sich nicht die OIDs merken, um sein tt-programm zu testen.
  b) man kann auch gleich die Grafik testen, ob die richtigen Patterns an der richtigen Stelle sind.

Nachteil (zumindest für diejenigen, mit ausschließlich Rastergrafiken arbeiten):
Es geht nur mit SVGs. Ich finde Inkscape aber ohnehin angenehmer als Gimp, wenn es darum geht OID-Patterns über ein Bild zu legen, da man keine riesigen, speicherintensiven, Dateien hat. Und wenn man ein background-jpeg nur verlinkt, statt einbettet, lässt sich das ganze Projekt auch recht effizient mit git verwalten. Oder mit einem low-res Bild entwickeln und es für den finalen PDF export durch eine hochauflösende Variante ersetzen.
(Gerne stelle ich meinen Workflow vor, vielleicht auch als weiteres Kapitel für das TTT-Buch, aber das ist hier jetzt out-of-scope.)

Status:
Das Grundkonzept funktioniert, die Umsetzung hat aber noch diverse Ecken und Kanten. Zum einen, weil das ganze noch Work-in-Progress ist, zum anderen sicher auch, da ich das Projekt nutze um meine Python-Kenntnisse aufzufrischen und mal wieder in JavaScript reinzuschnuppern — in beiden Welten würde ich mich noch nicht als Trittfest bezeichnen; in JS noch weniger.
Aus Anwendersicht ist momentan sicherlich der Hit-Test selbst der größte Knackpunkt: Der sieht momentan alle Formen noch ausschließlich als Rechtecke. Auch wenn im Browser gezoomt wird, greift der Hit-Test mit Safari daneben; mit Chrome geht’s.
Ich habe vor, weiter daran zu arbeiten, allerdings in kleinen Schritten und mit begrenztem Zeitkontingent. Für Rückfütterung aller Art, von Ideen über konstruktive Kritik bis hin zu PRs bin ich offen.


Viel Spaß damit,
Gruß,
Jonas



Mehr Informationen über die Mailingliste tiptoi