{-| Module : FiniteCategories Description : Examples of random triangle diagrams. Copyright : Guillaume Sabbagh 2021 License : GPL-3 Maintainer : guillaumesabbagh@protonmail.com Stability : experimental Portability : portable This example shows how to use `mkRandomDiagram`. -} module ExampleRandomDiagram.ExampleRandomTriangle ( main ) where import CompositionGraph.CompositionGraph import RandomCompositionGraph.RandomCompositionGraph import RandomDiagram.RandomDiagram import System.Random import ExportGraphViz.ExportGraphViz import UsualCategories.Three generateRDiags 0 gen diags = (diags,gen) generateRDiags n gen diags = ((diag:end), finalGen) where (newCG,newGen) = (defaultMkRandomCompositionGraph gen) (diag,newGen2) = (mkRandomDiagram Three newCG newGen) (end,finalGen) = generateRDiags (n-1) newGen2 diags exportDiags [] = putStrLn "End of ExampleRandomTriangle" exportDiags (diag:diags) = do putStrLn (show (length diags)++" random triangles remaining...") diagToPdf diag ("OutputGraphViz/Examples/RandomDiagram/RandomTriangles/funct"++show (length diags)) diagToPdf2 diag ("OutputGraphViz/Examples/RandomDiagram/RandomTriangles/diag"++show (length diags)) exportDiags diags -- | Exports 5 random composition graphs as pdf. main = do putStrLn "Start of ExampleRandomTriangle" exportDiags diags where (diags, g) = generateRDiags 5 (mkStdGen 745678765434567) []