Ich versuche, mehrere Diagramme in einer Art Tabelle zusammenzustellen. Ich denke, das nennt man "Indexdruck" , Fotografen machen das, wenn sie viele Fotos gleichzeitig überprüfen müssen. Wie auch immer, das ist der Code:
main :: IO ()
main = mainWith @(Diagram B)
$ (tile . fmap renderOne) examples
renderOne :: AnyGraph -> Diagram B
renderOne (AnyGraph gr) = ...
tile :: [Diagram B] -> Diagram B
tile xs = let columns = (ceiling . sqrt . fromIntegral . length) xs
in (vcat . fmap hcat . List.chunksOf columns) xs
Es funktioniert nicht wie erwartet. Aber gehen wir es schrittweise an. Hier ist zunächst ein Render einer einzelnen Kachel:
Lassen Sie uns nun hcat
vier Kacheln zusammen.
Fügen Sie eine zweite Zeile hinzu: (Sehen Sie, wie sich skalierungsinvariante Merkmale verdicken.)
Und so sieht es mit 4 Zeilen aus:
Aus der Hand!
Es scheint mir , dass skaleninvarianten Features, wie Pfeilspitzen, werden im Verhältnis zu dem skalierten Bereich des Bildes. In diesem Fall muss ich mein Diagramm jedoch vergrößern, ohne diese Funktionen neu zu skalieren. Wie kann ich das erreichen?
quelle