【家紋-4】九ツ組木を描いてみよう

九ツ組木という家紋です。長い板が6枚重なっているのかと思ってプログラムを組みましたが、9つ組木なので、短い板が9枚に見えるから九ツなのでしょうか。…
画面の幅(240pt)を9等分し、その一つの幅をaにします。板の短辺をaにして、他の長さをa×○で表しています。

参考:日本の家紋/発行2004年5月1日 初版発行/発行者 安田英樹/発行所 株式会社青幻舎

図のように組んでいき、回転させています。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 240 240
%%Title:家紋を描く(九ツ組木)
/a 240 9 idiv def % 幅を定義
/bk { 0 setgray stroke } def % 黒線
/wh { 1 setgray fill } def % 白で塗りつぶし
/kaku { % 板のプロシージャ定義
    a .5 mul neg 3.5 a mul moveto    a 0 rlineto % 長方形を引く
    0 a 7 mul neg rlineto   a neg 0 rlineto   closepath
    % グラフィックス状態を保存し白で塗りつぶし、グラフィックス状態を復元し黒線を描く
   gsave wh grestore bk
} def

0 0 240 240 rectfill % 黒背景
120 120 translate % 座標の原点を中央に移動

45 rotate % 全体を回転
gsave gsave gsave % グラフィックス状態を3回保存
kaku % 真ん中の板(垂直方向)

90 rotate % 90度回転(水平方向)
2 a mul 0 translate    kaku % 上の板
a 4 mul neg 0 translate   kaku % 下の板

grestore % グラフィックス状態を復元
a 2 mul 0 translate   kaku % 右の板(垂直方向)
a 4 mul neg 0 translate   kaku % 左の板

grestore % グラフィックス状態を復元
90 rotate % 90度回転(水平方向)
kaku % 真ん中の板(下図真ん中)

grestore % グラフィックス状態を復元
a .5 mul neg 1.5 a mul moveto    a 0 rlineto
0 a 3 mul neg rlineto    a neg 0 rlineto    closepath
gsave wh grestore bk % 真ん中の板を隠すための垂直方向の短い板(下図右)

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

コメント

コメントする

CAPTCHA


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

目次