- トップページ
- 書庫
- 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を使うと、シンプルなコードで見た目は複雑なイメージが描けます。
できるようになった(はずの)こと- シェイプを反転させて描画できる