Loading [MathJax]/jax/output/HTML-CSS/config.js

2025年1月20日月曜日

gnuplotでリサージュ曲線を描く

 gnuplotでリサージュ曲線を描くには以下のようなコマンドを入力します.

gnuplot> set parametric

dummy variable is t for curves, u/v for surfaces

gnuplot> plot sin(2*t), sin(3*t)

すると,以下のような図が描かれます.


また,円の内のサイクロイド(原点を中心とする半径Rの円Cに内接する半径rの小円C'が滑らずに回転していくときの円C'の円周上の1点の描く軌跡は



と媒介変数表示されます.その中で,R=3, r=1の場合を図示するには,以下のようなコマンドを入力します.

gnuplot> R=3; r=1; S=1; RD=R-r; AS=1-R/r; plot RD*cos(t)+r*S*cos(AS*t), RD*sin(t)+r*S*sin(AS*t)

すると,以下のような図が描かれます.


色々と設定を変えて描画した結果は以下のようになります.

gnuplot> R=2; r=1; S=0.8; RD=R-r; AS=1-R/r; plot RD*cos(t)+r*S*cos(AS*t), RD*sin(t)+r*S*sin(AS*t)

gnuplot> R=4; r=1; S=0.8; RD=R-r; AS=1-R/r; plot RD*cos(t)+r*S*cos(AS*t), RD*sin(t)+r*S*sin(AS*t)

gnuplot> set trange[0:200]

gnuplot> set sample 1000


gnuplot> R=3; r=1.8; S=0.8; RD=R-r; AS=1-R/r; plot RD*cos(t)+r*S*cos(AS*t), RD*sin(t)+r*S*sin(AS*t)

gnuplot> R=3; r=1.7; S=0.8; RD=R-r; AS=1-R/r; plot RD*cos(t)+r*S*cos(AS*t), RD*sin(t)+r*S*sin(AS*t)

0 件のコメント :

コメントを投稿