After we can create different primitive shapes, we start to combine them together. We cannot simply put all the primitive shapes within one single shape rule, like:
startshape MyShape rule MyShape { CIRCLE {} TRIANGLE {} SQUARE {} }
Every shape command comes with parameters. We work with the translation parameters x and y to move the shape around in the canvas.
startshape MyShape rule MyShape { CIRCLE {x -2} TRIANGLE {} SQUARE {x 2} }
startshape MyShape rule MyShape { CIRCLE {y 2} TRIANGLE {} SQUARE {y -2} }
startshape MyShape rule MyShape { CIRCLE {x 2 y 2 size 0.8} TRIANGLE {size 2} SQUARE {x -2 y -2 size 0.5} }