プリミティブ・シェイプを描く プリミティブ・シェイプを描く

Context Freeの最もシンプルな構文は、startshapeと、ひとつのルールです。

startshape Maru

rule Maru {
  CIRCLE {}
}

startshapeは、どのルールから描画を始めるのかを指定する必須項目で、startshapeで指定されたルールは、なにをどういう条件で描画するかを定義したものです。 この例では、startshapeがMaruというルールを呼び出し、Maruには円を描く命令(“CIRCLE{}”)が書かれています。

実行すると以下の図形が描画されます。

circle

Context Freeのイメージ表示部いっぱいに、円が描かれました(Context Freeはイメージ全体が描画領域に収まるようにサイズを調整します)。 CIRCLE{}は円を描く命令で、Maruが、その命令を定義したルールとなります。 このように、ルールに規則や条件を書き、それをstartshapeで呼び出すことで、Context Freeはイメージを描画します。

別の図形も描いてみましょう。

startshape Shikaku

rule Shikaku {
  SQUARE {}
}
square

今度はイメージ表示部いっぱいに、正方形が描かれました。

startshape Sankaku

rule Sankaku {
  TRIANGLE {}
}
triangle

イメージ表示部いっぱいに、正三角形が描かれました。

SQUARE{}は正方形、TRIANGLE{}は正三角形を描く命令で、Sankaku、Shikakuが、それぞれの命令を定義したルールです。

円、正方形、正三角形が、Context Freeで描画できる基本図形=プリミティブ・シェイプの全てです。 この3種類の図形を組み合わせて、様々なイメージを描くことができます。

できるようになった(はずの)こと
  1. 円をひとつ描画できる
  2. 正方形をひとつ描画できる
  3. 正三角形をひとつ描画できる