シェイプをいくつも描く シェイプをいくつも描く

今度はプリミティブ・シェイプを並べてみましょう。 円、正方形、正三角形をShapesというルールにまとめて、startshapeで呼び出してみます。

startshape Shapes 

rule Shapes {
  CIRCLE {}
  SQUARE {}
  TRIANGLE {}
}
shapes NG

全てのシェイプが同じ位置に書かれ、中央に突起の付いた正方形のような形になってしまいました。位置を変更する必要があります。

startshape Shapes 

rule Shapes {
  CIRCLE {}
  SQUARE {x 1}
  TRIANGLE {x 2}
}
shapes OK

プリミティブ・シェイプ名称に続く中カッコの中に、そのシェイプの属性を記述できます。 上記の例では、正方形(SQUARE)を円からx軸方向に1つ分動かし、正三角形(TRIANGLE)を円からx軸方向に2つ分動かして描画しています。 中カッコ内のx 1がx軸方向に1つ分移動、x 2がx軸方向に2つ分移動をあらわします。

startshape Shapes 

rule Shapes {
  CIRCLE {}
  SQUARE {x -1.5 r 45}
  TRIANGLE {x 1 y 1}
}
shapes OK

移動はy軸方向にも可能です。また、負の方向に動かしたり、回転させることもできます。 上記の例では、正方形(SQUARE)を円からx軸の逆方向に1.5個分動かして45度回転、正三角形(TRIANGLE)を円からx軸方向に1個分、y軸方向に1個分動かして描画しています。 中カッコ内のx -1.5がx軸逆方向に1.5個分移動、r 45が45度回転、y 1がy軸方向に1個分移動をあらわします。

できるようになった(はずの)こと
  1. 複数のシェイプをまとめて描画できる
  2. シェイプの位置を変えて描画できる
  3. シェイプを回転させて描画できる