がんばれ日本、プログラム作成

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ブラウザで開いてください。

プログラムの説明は、次回とします。

トップヘ 目次ヘ 前ヘ 次ヘ