半丸つなぎ
半丸つなぎを描きます。
半丸つなぎの基本パターンのとりかたはいろいろ考えられますが,次のようにとってみましょう。
半円が4個です。
半円は弧ですので,arc(中心,半径,描き始め,描き終わり) の関数を用いて描くことができます。
ここで,描き始めと描き終わりの指定のしかたを説明します。
円周上の点の位置は,時計の3時の位置から反時計回りに角を測って指定します。
一周は360°ですが,弧度法ではこれを2πで表します。πは円周率です。
よく使う角は次のようになります。
内側が度数法,外側が弧度法です。0から時計回りに測るときはマイナスにします。
もちろんすべて反時計回りで測ることもできますが,右半分の半円を描くときは,-1/2π(2分の1パイ) から 1/2π と考えるのがよいのです。
他の角もこの割合で計算します。
したがって,上半分の半角は,0からπまでとなりますが,Cindyscriptではπを pi で表します。
かくして,上半分の半角は中心が[0,2],半径を2として,
arc([0,2],2,0,pi);
で描くことができます。
残りの半円は次のようになります。半径はどれも2です。中心と角の範囲を確かめてください。
arc([0,-2],2,pi,2*pi);
arc([2,0],2,pi/2,3*pi/2);
arc([-2,0],2,-pi/2,pi/2);
ここで,3*pi/2 は3/2*pi としても同じです。*はかけ算の印,/が分数の線(わり算の印)です。
これで,基本パターンの定義をは次のようになります。
drawpat():=(
arc([0,2],2,0,pi);
arc([0,-2],2,pi,2*pi);
arc([2,0],2,pi/2,3*pi/2);
arc([-2,0],2,-pi/2,pi/2);
);
この基本パターンに対し,平行移動量は次のようになります。
Shiftx=[8,0]; // 1行分描くための横への平行移動量
Shifty=[4,4]; // 上への平行移動量
描き始めの位置と個数を適当に決めて描いてみましょう。