
Since 2003.04.08
日の丸を作るのですが、まず規格を確認しなければなりません。
先日法制化された規格は、
ですが、法案作成者の美意識を疑います。
縦横比は、ギリシャ以来の黄金分割で無ければなりません。中心がど真ん中というのも、凡庸です。
1870年布告の商船規則で図解入りで定められ、国旗国歌法の附則3で、「当分の間・・できる」とされている
を採用します。
但し、横書き文を、右から左に書いた昔と反対に、今は横書き文は左から右に書きますので、それに倣って、旗ざおを商船規則とは反対に左に想定します。
Javaでの描画の座標系は、左上が (0, 0) 右下が (幅-1, 高さ-1) です。数学で使う座標の第1象限(xy共に正の領域)の上下を反対にしたものです。
上の規格をこの座標系にプロットすると、次のようになります。
| 幅(これを基準とする) | 100 |
| 高さ | 70 |
| 中心円に正接する正方形の左上座標 | (28,14) |
| 中心円に正接する正方形の辺長さ | 42 |
設計は以上で終わりなので、プログラム作業に入ります。
「Sketch.java」「Sketch.html」をコピーして「Sunflag.java」「Sunflag.html」を作ります。

「Sunflag.java」を開いてコードを書き加えます。
/*<applet code="net/sys5jp/Sunflag.class"
codebase="../../"
width=400 height=280>
</applet>*/
package net.sys5jp;
import java.applet.*;
import java.awt.*;
public class Sunflag extends Applet {
public void paint(Graphics g) {
Dimension dim = this.getSize();
int x = dim.width * 28 / 100;
int y = dim.width * 14 / 100;
int dist = dim.width * 42 / 100;
g.setColor(new Color(255, 255, 255));
g.fillRect(0, 0, dim.width, dim.height);
g.setColor(new Color(255, 0, 0));
g.fillOval(x, y, dist, dist);
}
public void init() {
}
}
書き終えたら、上書き保存します。
「Sunflag.html」も、アプレットタグの部分を、上の3行と同様に書き換えます。
<html>
<head>
<style>
<!--
body {background-color:rgb(255,255,128)}
p {text-align:center}
-->
</style>
</head>
<body>
<p>
<applet code="net/sys5jp/Sunflag.class"
codebase="../../"
width=400 height=280>
</applet>
</p>
</body>
</html>
「java141.bat」のアイコンを叩いて、コマンドプロンプトを開きます。
javac スペース Sunflag.java(Sは大文字です)と入力し、Enterを叩きます。
しばらくして、新しいコマンドプロンプトが表示されたらOKです。
エラーが表示されたら、行番号を元に、ソースを修正してください。

「Sunflag.class」を表示するために「Sunflag.html」をWebブラウザで開いてください。

プログラムの説明は、次回とします。
| トップヘ | 目次ヘ | 前ヘ | 次ヘ |
Copyright (C) 2003 System Five Japan (Mori). All Rights Reserved
Java およびそのほか Java を含む標章は、米国 Sun Microsystems, Inc.の商標です