Ein Toggle in der Graph-Kopfzeile lässt gezogene Nodes auf dem 24er-Raster einrasten – derselben Größe, die den Hintergrund zeichnet. Einschalten bewegt nichts; die Regel greift erst beim nächsten Zug. Bei Mehrfachauswahl richtet sich jeder Node für sich aus, statt einem gemeinsamen Versatz zu folgen, der die alten krummen Abstände mitschleppen würde. Die Entscheidung liegt als reine Funktion in framing.ts, wo die übrige Graph-Geometrie schon wohnt, und ist dort wie im Browser gepinnt.
20 lines
1.2 KiB
Markdown
20 lines
1.2 KiB
Markdown
beim graph bräuchte ich einen toggle der grid snapping aktiviert.
|
||
alle vorhandenen nodes soll da bleiben wo sie sind, erst wenn man ein node bewegt soll es greifen
|
||
die grid-größe kannst du selbst entscheiden, am besten ein sinnvoller wert
|
||
|
||
---
|
||
|
||
Gebaut. Zwei Dinge, die weder oben stehen noch aus dem Commit hervorgehen:
|
||
|
||
**Die Rastergröße ist 24 px – dieselbe Zahl, die den Hintergrund zeichnet** (`GRID_STEP`). Es gibt
|
||
also keinen zweiten, unsichtbaren Raster: was einrastet, rastet auf einer Linie ein, die man sieht.
|
||
Bei starkem Herauszoomen blendet das Raster aus (`MIN_GRID_STEP`), der Snap-Schritt bleibt aber
|
||
derselbe – er hängt an Weltkoordinaten, nicht am Zoom.
|
||
|
||
**Bei Mehrfachauswahl richtet sich jeder Node für sich aus** (Nachtrag des Users während der
|
||
Arbeit). Die erste Fassung verschob die Auswahl um *einen* gemeinsamen Versatz, was ihre alten,
|
||
krummen Abstände mitschleppte: nur der Ankerknoten landete auf einer Linie. Jetzt ist `dragOffset`
|
||
pro Node definiert – jeder bekommt seinen eigenen Versatz, die Auswahl fluchtet danach wirklich.
|
||
Der Preis ist bewusst: die relativen Abstände innerhalb der Auswahl können sich um bis zu einen
|
||
halben Schritt ändern.
|