サイクロイド系の曲線を描く

サイクロイド系の曲線を描きます。転がる円と、途中図、たとえば、75°だけ回転した時の図をイメージしながらの描画となると、位置計算が結構面倒です。その点、Cinderella で実際に描画して、満足できる結果が得られたならば書き出すことにより、能率は格段にアップします。

ここでは、定円周上を外接しながら円が回る、エピサイクロイドを描いてみましょう。

(1) まず、「円を加える」ツールで定円を書きます。たとえば、原点中心、半径3とします。

次に、動円を半径1の円としますが、これは中心の点だけ取っておけばよいでしょう。もちろん、円を描いても構いませんが

円はCindyScriptで描画します。

もうひとつ、動円上の定点をとります。この2つの点は、CindyScriptで位置決めをしますので、最初は適当なところでよいです。

(2) スクリプト.を書きます。

th=5*pi/12;

B.xy=[3*cos(th),3*sin(th)];

C.xy=[4*cos(th),4*sin(th)];

D.xy=[4*cos(th)-cos(4*th),4*sin(th)-sin(4*th)];

Circledata([A,B]);

Circledata([C,D]);

Listplot([A,C]);

Listplot([C,D]);

Paramplot("1","[4*cos(t)-cos(4*t),4*sin(t)-sin(4*t)]","t=[0,5*pi/12]");

Letter([B,"se","Q",C,"e","C",D,"nw","P",[3,0],"s","A"]);

1行目は回転角の設定です。5/12π すなわち75°にしていますが、いい図になるようにするにはあとでここだけ変えればすみます。

2行目から4行目が3点B,C,Dの位置決めです。Bは定円と動円の接点、Cは動円の中心、Dは動円上の定点です。

5,6行目で円を描きます。定円はすでに描かれてあるわけですが、これにより、Scilabに円の情報を引き継ぐのです。

7,8行目で、中心と円周上の点を結んだ線分を引きます。

9行目が、エピサイクロイドの描画です。

10行目で各点の名前を表示します。

実行すると次のような図になります。

th の値.と、9行目の Paramplot の最後のパラメータ(定義域指定)を変えれば、他の位置になります。

(3) さらに、角を表す θ を図の中に書き入れてみましょう。

角を表す弧は、Circledata() で書きます。Rオプションで、描画範囲の角を指定すると弧が描けます。

Circledata("1",[[0,0],[0.5,0]],["R=[0,5*pi/12]"]);

Letter([0,0],"n5e5","θ");

を追加します。

θ の位置指定 e5n5 の 5 は[0,0]からの距離を表します。このあたりは試行錯誤で位置を決めます。

次のような仕上がりになります。

サイクロイド、ハイポサイクロイドも同様に作図できます。

< 戻る >