半丸つなぎ

半丸つなぎを描きます。

半丸つなぎの基本パターンのとりかたはいろいろ考えられますが,次のようにとってみましょう。

半円が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];  // 上への平行移動量

描き始めの位置と個数を適当に決めて描いてみましょう。

< 「描画手順をプログラムする」に戻る >