【直線-17】放射状の線を描いてみよう

放射状の線を描いてみましょう。
最初に原点からy軸正方向に直線を引きます。
rotateで座標を回転させて次々と直線を引いていきます。
360-kにするのは最後に線が重ならないようにするため。
やってみよう 角度kの値を色々変えてみましょう。


1
2
3
4
5
6
7
8
9
10
11
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 240 240
%%Title:放射状の線を描く
/k 10 def % 角度
120 120 translate % 座標の原点を中央に移動
newpath % パスの初期化
0 k 360 k sub { % 0からkづつ増やし360-kになるまで{ }内を繰り返す
    pop % 制御変数を削除
    0 0 moveto 0 100 rlineto stroke % 原点からy軸正方向に直線を引く
    k rotate % 座標をk度回転する
} for

modif文を使って、交互に色を変えます。
制御変数を4で割った余りが2の場合にcol1(赤)、それ以外はcol2(黒)にします。

スタックに入った制御変数を使って計算します。(制御変数を変数に代入しない例)


1
2
3
4
5
6
7
8
9
10
11
12
13
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 240 240
%%Title:交互に水平線を描く
/col1 { 1 0 0 setrgbcolor } def % 赤
/col2 { 0 0 0 setrgbcolor } def % 黒
/k 10 def % 角度
120 120 translate % 座標の原点を中央に移動
newpath % パスの初期化
0 k 360 k sub { % 0からkづつ増やし360-kになるまで{ }内を繰り返す
    4 mod 2 eq { col1 } { col2 } ifelse % 2なら赤、さもなくば黒
    0 0 moveto 0 100 rlineto stroke % 原点からy軸100ポイントに線を引く
    k rotate % 座標をk度回転する
} for

制御変数をsに入れて使用したコードです。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 240 240
%%Title:交互に水平線を描く
/col1 { 1 0 0 setrgbcolor } def % 赤
/col2 { 0 0 0 setrgbcolor } def % 黒
/k 10 def % 角度
120 120 translate % 座標の原点を中央に移動
newpath % パスの初期化
0 k 360 k sub { % 0からkづつ増やし360-kになるまで{ }内を繰り返す
    /s exch 4 mod def % 制御変数を4で割った余りをsに入れる
    s 2 eq { col1 } { col2 } ifelse % 2なら赤、さもなくば黒
    0 0 moveto 0 100 rlineto stroke % 原点からy軸100ポイントに線を引く
    k rotate % 座標をk度回転する
} for

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次