J'essaie de rassembler plusieurs diagrammes dans une sorte de tableau. Je pense que cela s'appelle "index print" , les photographes le font quand ils doivent revoir plusieurs photos à la fois. Quoi qu'il en soit, voici le 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
Cela ne fonctionne pas comme je m'y attendais. Mais abordons-la progressivement. Tout d'abord, voici le rendu d'une seule tuile:
Maintenant, laissez-nous hcat
quatre tuiles ensemble.
Ajouter une deuxième ligne: (Voir comment l' échelle est invariante caractéristiques s'épaississent.)
Et voici à quoi cela ressemble avec 4 lignes:
Incontrôlable!
Il me semble que les caractéristiques invariantes à l'échelle, telles que les têtes de flèche, sont mises à l'échelle proportionnellement à la zone de l'image. Mais dans ce cas, je dois développer mon diagramme sans redimensionner ces fonctionnalités. Comment puis-je y parvenir?
la source