- トップページ
- 書庫
- Context Free for beginners
- シェイプを反転する

Context Freeではシェイプを反転して描画することができます。
startshape start include i_pix.cfdg rule start { text {} text { y -1.5 flip 0 } } rule text { F_5by5 { x 0 } L_5by5 { x 1.2 } I_5by5 { x 2.4 } P_5by5 { x 3.6 } }

FLIPという文字と、反転した文字が描画されました。 flip 0は0度のラインで(つまり、水平に引かれたラインで上下に)シェイプを反転します。 シェイプを左右に反転したいときは、ラインの角度を90度flip 90にします。
startshape start include i_pix.cfdg rule start { text {} text { x -1.5 flip 90 } } rule text { F_5by5 { x 0 } L_5by5 { x 1.2 } I_5by5 { x 2.4 } P_5by5 { x 3.6 } }

このように、flipの後に入力された数値の角度で、シェイプの反転が行われます。 他の属性値と同じように、繰り返しや再帰呼び出しに使用することも可能です。
startshape zigzag include i_pix.cfdg rule zigzag { 5 * { flip 45 y -4.5 } text {} } rule text { F_5by5 { x 0 } L_5by5 { x 1.2 } I_5by5 { x 2.4 } P_5by5 { x 3.6 } }

この例では、45度のラインに沿って反転を繰り返すので、シェイプがジグザグに描画されます。
startshape Glass rule Glass { TRIANGLE { s 0.5 1 } Glass { r 10 y 0.5 s 0.93 } } rule Glass 0.1 { Glass {} Glass { flip 90 } }

再帰呼び出しで描画するときの枝分かれにflipを使うと、シンプルなコードで見た目は複雑なイメージが描けます。
できるようになった(はずの)こと- シェイプを反転させて描画できる