Saya mencoba menyatukan beberapa diagram dalam semacam tabel. Saya pikir ini disebut "indeks cetak" , orang-orang fotografi melakukan itu ketika mereka harus meninjau banyak foto sekaligus. Bagaimanapun, ini kodenya:
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
Itu tidak berfungsi seperti yang saya harapkan. Tapi mari kita dekati secara bertahap. Pertama, ini adalah render satu ubin:
Sekarang, mari kita hcat
empat ubin bersama.
Tambahkan baris kedua: (Lihat bagaimana fitur invarian skala menebal.)
Dan ini adalah tampilannya dengan 4 baris:
Tidak terkendali!
Sepertinya saya bahwa fitur invarian skala, seperti kepala panah, diskalakan sesuai dengan area gambar. Tetapi dalam kasus ini, saya perlu menumbuhkan diagram saya tanpa mengubah skala fitur-fitur itu. Bagaimana saya bisa mencapainya?