So-net無料ブログ作成

スピログラフを描いてみよう [PostScript]

曲線を描く


スピログラフ.png
SPIROGRAPHは登録商標だそうで、内トコロイド曲線等を描く定規です。
ググって見るとスピログラフデラックスとか言って何千円もするのがあって驚きです。
子供の頃、面白くて遊んだことがありますが、1度やったらもう飽きてしまって。
昔は多色ボールペンぐらいしかカラーの筆記具がなくて、書いている内にインクのダマができて汚くなったりした記憶があります。
内トコロイド(rd=rmの時内サイクロイド)
x=(rc-rm)*cos(th)+rd*cos((rc-rm)/rm*th )
y=(rc-rm)*sin(th)-rd*sin((rc-rm)/rm*th )

【サンプルコード】
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:Spirograph(スピログラフ) /rc 50 def % 外側の円の半径(定円) /rm .5 def % 歯車の半径(動円) /rd 60 def % 描画点の半径(動円内描画点の半径) /sw 0 def % 始点の開始 0 0 240 240 rectfill 背景を黒で描く 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 0 .5 360 { % 0から360まで0.5づつ増分し{ }内を繰り返す /a exch def % 制御変数をa(回転角)に入れる % スピログラフの数式 /x rc rm sub a cos mul rd rc rm sub rm div a mul cos mul add def /y rc rm sub a sin mul rd rc rm sub rm div a mul sin mul sub def % swが0なら始点をさもなくば線を引く sw 0 eq { x y moveto /sw 1 def } { x y lineto } ifelse } for closepath % 線を繋ぐ gsave % グラフィックス状態を保存 1 0 1 setrgbcolor fill % マゼンタ色で塗りつぶす grestore % グラフィックス状態を復元 1 setlinewidth % 線幅1ポイント 1 .7 0 setrgbcolor stroke % オレンジ色の線描く

スピログラフvariation.png

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:アート

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました