From 3ad5eaa9ba447f7f34d5eed62af7973b79e6072b Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sat, 25 Feb 2023 01:49:58 +0100 Subject: [PATCH] Timeline: construct a design for track scope brackets My idea was to use the brackets from musical notation as inspiration; if you know some principles of typography, it is rather straight-forward to come up with a pleasing design of such a bracket, using a cascade of golden ratio relationships. BUT ... all of this is geometry, and translating that into a symbolic or numerical calculation is excessively complicated. Thus I looked for ways to use some geometry or CAD software to build such a construction. The geometry software I tired was woefully inadequate for this task. Using the Constraint system in FreeCAD, building the construction went smooth and straight forward, but then I was unable to export that drawing in a way indicating the construction clearly. So in the end, I'll have to hand-pick the resulting numerical coordinates from the FreeCAD XML document and integrate them directly into Cairo drawing code... --- doc/devel/draw/StaveBracket.FCStd | Bin 0 -> 43609 bytes doc/devel/draw/StaveBracket.svg | 193 ++++++++++ wiki/thinkPad.ichthyo.mm | 561 +++++++++++++++++++++++++++++- 3 files changed, 752 insertions(+), 2 deletions(-) create mode 100644 doc/devel/draw/StaveBracket.FCStd create mode 100644 doc/devel/draw/StaveBracket.svg diff --git a/doc/devel/draw/StaveBracket.FCStd b/doc/devel/draw/StaveBracket.FCStd new file mode 100644 index 0000000000000000000000000000000000000000..804f0e9f42fc7a1cb58bb8c7df3d78fc95e41fb3 GIT binary patch literal 43609 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 literal 0 HcmV?d00001 diff --git a/doc/devel/draw/StaveBracket.svg b/doc/devel/draw/StaveBracket.svg new file mode 100644 index 000000000..36c9da99f --- /dev/null +++ b/doc/devel/draw/StaveBracket.svg @@ -0,0 +1,193 @@ + + + + + StaveBracket + + + + + + + + image/svg+xml + + StaveBracket + + Feb.2023 + + + Ichthyostega + + + + + Lumiera Documentation: CC by SA or GPL 2+ + + + Design of the brackets to indicate a Track's scope in the Lumiera Timeline UI + + + + + + + + + + + + + + + + + + + + Φ + + + + + + + + + + + + + + diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index a3518210f..e0753654a 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -5715,6 +5715,7 @@ + @@ -5740,7 +5741,7 @@

- wenn man den Filter entfernt / auf Null dreht (Blur), dann wendet Inkscape die Transformation + wenn man den Filter entfernt / auf Null dreht (Blur), dann wendet Inkscape die Transformation an

@@ -28076,6 +28077,427 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ nominell: 96dpi +

+ +
+
+ + + + + + +

+ mein Display: 90dpi +

+ +
+ + + + + +

+ Ich habe beim Upgrade auf Debian-Stretch mal nachgemessen: tatsächlich hat mein Display 94dpi. Demnach wäre der andere weithin übliche Wert von 96dpi präziser. Jedoch bin ich nach mehreren Experimenten bei 90dpi geblieben, da für mich so die Schriftarten die „richtige Größe“ haben — das mag auch daran liegen, daß ich leicht kurzsichtig bin und typischeweise etwas näher am Bildschirm sitze. +

+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+ ich kann zwar einrasten, aber ich kann weder um einen definierten Punkt drehen, noch kann ich Schnittpunkte ermitteln +

+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ "Mathe für 6-13 järige" etc +

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +

+ b = 0.6180339887498948482 +

+ +
+ +
+ + + + + + +

+ wenn man nachträglich einzelne Objekte modifiziert, ändern sicn nur diese, aber keine davon abhängigen weiteren Schritte der Konstruktion +

+ +
+
+
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + +

+ Anweisungen in der Statuszeile: wähle ersten Punkt, setze zweiten Punkt.... +

+ +
+
+ + + + + + + + + + + + + + + + + + + + +

+ man zeichnet nicht, sondern man stellt eine Liste von Operationen zusammen +

+ +
+
+ + + + + + + + + + + +

+ embedded browser control +

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+ Das liegt vielleicht auch an der etwas „alten“ Version von ca. 2018. +

+

+ Könnte aber auch auf grundsätzliche Limitierungen hinweisen; man hat eben vor allem an das Design von 3D-Bauteilen gedacht +

+ +
+
+ + + + + + +

+ Das UI-Design ist vom konkreten Einzelfall-Nutzen ausgegangen, nicht von einem stimmigen Gesamtentwurf. Alles ist auf das Konstruieren von 3D-Bauteilen in typischem handlichen Format ausgelegt: eine kleine Zahl an Einzelobjekten im cm-Bereich.... +

+

+ +

+

+ Ich komme jetzt mit einer Konstruktion im Sub-Millimeter-Bereich, und ich bräuchte sich überlappende Formen .... +

+
    +
  • + die Anzeige-Handhabung wird dann "frickelig" +
  • +
  • + die Beschriftungen sind viel zu groß und lassen sich nicht sinnvoll platzieren +
  • +
  • + es gibt nur die starre Unterscheidung in »Hilfslinien« (construction) und »Geometrie« +
  • +
  • + letztere muß überschneidungsfrei sein +
  • +
  • + für mein Design habe ich dann ca 50 nummerierte Constraints, die anhand der Anzeige kaum mehr sinnvoll nachvollziehbar sind... +
  • +
+ +
+
+ + + + + + +

+ Die Geometrie-Elemente in den Sketch-Objekten sind eine Spezial-Implementierung, und keine »first class citizens«. Es ist nicht klar, wie man sie aus Expressions referenzieren kann (kein sauberes DSL-Design). Das Dependency-Management ist viel zu naiv implementiert, und es wird empfohlen, mit Tricks und Kniffen zu arbeiten. +

+ + +
+
+ + + + + + +

+ Eine Funktion, um eine Linie gemäß Proportion zu teilen, wird zwar oft gewünscht, ist aber derzeit (2022) noch in Entwicklung. Daher kann man im Moment nur eine feste Basislänge als benannter Constraint vorgeben, und dann andere Längen per Expression =Constraint.basis * (1+sqrt(5)/2  daran binden. Außerdem kann man solche Expressions zwar einmal initial eigeben, dann aber nur noch über das XML editieren. +

+ + +
+ +
+ + + + + + +

+ ⟹ ich kann das Ergebnis nicht exportieren +

+ +
+ + + + + + + + + +

+ a bytes-like object is required, not "str" +

+ +
+
+
+ + + +
+
+
+ + + + + + +

+ die konkrete Aufgabe ist mit FreeCAD elegant
— aber Resultate sind schwer zugänglich — +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -28126,7 +28548,7 @@ - + @@ -69784,6 +70206,141 @@ + + + + + + + + + + + + + + + + +

+ anscheinend gibt es eine Konvention, welche die im UI sichtbaren Koordinaten in vertikaler Richtung spiegelt; auch ist der auf dem Lineal angezeigte Ursprung unten links +

+ +
+ +
+
+ + + + + + + + +

+ Koordinaten »versäubern« +

+ +
+ + + + + + + + + + + + +
+
+
+ + + + + + + +

+ ...und Inkscape wird das erhalten, solange man die betr. Features nicht wieder aktiviert. Im Besonderen kann man +

+
    +
  • + alle "Stroke"-Features entfernen, wenn der Stroke deaktiviert ist +
  • +
  • + opacity:1 weglassen +
  • +
  • + die Defaults "color:#000000;display:inline;overflow:visible;visibility:visible;"  kann man meist weglassen +
  • +
  • + diverse Vector-Filter und display-styles weglassen (wenn sie auf dem default-Wert stehen) +
  • +
+ +
+ + + + + + + +

+ style="fill:black;fill-opacity:0.5;stroke:#5a8fb2;stroke-opacity:1;stroke-width:0.1" +

+ +
+
+ + + + + + +

+ style="fill:#ffffff;fill-opacity:0.75;stroke:none;stroke-width:0.05" +

+ +
+
+
+ + + + + + +

+ aber leider nur als globales Verhalten der Inkscape-Installation +

+ +
+ + + + + + + + + + +

+ Behaviour > Transforms > store optimised +

+ +
+
+ + +
+