2001.5.28 KPC 情報技術科 関谷
viewを変える事で、表示される図形の大きさと位置を変えることができる。次数が6以上では差が見えなかったので、6次を拡大して表示した。
角度のパラメータでいろいろと形が変化する。
コッホ曲線の角度や個数を変更して独自の曲線を作ってくれた人達がいます。
パラメータを変えることで、いろんな木になる。あるいは、鶏頭の花のようになる。
次数を20以上にすると、計算機の動作がわかってくる。(時間が掛かるため。)
小生は、乱数を使って、100本の木を並べてみました。
小生のpcでは、幹を傾けていない(setangle(90);)にも関わらず、画面上で幹が途中から1ピクセル左にずれ傾いていた(5月21日のamまでの分)。この原因は,Glibwv.hでのmoveでの整数化での誤差(四捨五入していなかった)(ka_ce63f)とモニターでの画面の傾きの設定不良(ka_ce63)があった。複合していたり、後者だけでも解決したりである。皆さんのPCでの表示が、小生の木が正しく鉛直に表示されないなら、モニターの鉛直度の設定を調整すること。皆さんのモデルでは、再度、i:\sekiya\sls\sls\Glibwv.hを使ってコンパイルすること。
「Javaによる図形処理入門 (c)Y.yamamoto 出版社:工学図書株式会社 著者:山本 芳人 」のWebページに、リカーシブ・グラフィックスの例として、コッホ曲線や樹木曲線のアプレットがある。
Webへのアップロードのファイルで、提出とカウントします。単に、名前を変えて実行したものでは、最低点にします。(本当は、考察がなければ、レポートとは認められないのですが。)それでも、まだ、未提出よりは、進度が解るので出席しているものとみなします。提出がなければ,欠席とみなします。就職活動などで、授業に出られなかったとしても、小生のwebのページを見るなりして、課題を実行してWebページをアップのこと。
SLSやGlibwvでの基礎的なグラフィックスを学習したので、それとの対比ができるJava言語でのグラフィックスを、OpenGLでのプログラミングの前に、学習することにする。
小生の紀要での報告(紀要(kpc_98)JAVA言語の調査と能力開発セミナーの計画・実施)やWebページ(Javaリンク集)なども参照のこと。
やさしいJavaプログラミング(改訂版) 第1章 Javaへようこそ 5.Javaプログラミングの基礎知識 は、それらの中の1つで、Webにも本と同じ内容がある。
このテキストの「はじめに」、第1章,第2章を参照のこと。
カラー写真(実行画面の例) はじめに-Javaはオブジェクト指向、プラットフォームに依存しない。Java2、Javaグラフィックス、Javaマルチメディアの解説と実例 目次 第1章 Java言語 1.Java言語とは 1.1 Java言語の特徴と歴史 1.2 オブジェクト指向とは 2.Java開発キットJDKの取得と設定 第2章 Java言語のオブジェクト指向プログラミング基礎 1.Javaプログラミングの基本構造 クラスなど 2.クラス入門 3.Java言語のまとめ 〔参考書〕 1.河西朝雄著,Java入門,技術評論社刊 2.有賀妙子・竹岡尚三著,Java1.1プログラミング,ソフトバンク刊 etc.
[JDK ドキュメント]
1)I:\JDK1.2\doc\ja\index.htmlをダブルクリックすれば、JDK1.2の日本語のマニュアル等がすべて見れる。
2) 例題プログラムが, demoフォルダの下に, フォルダ別に23件ある。(html ファイルでで起動)
javaは,ここ5年ほどで,急激に普及しようとしている。
この言語は,オブジェクト指向の言語で,プラットフォームを選ばない。
オブジェクト指向について(ソフトウェア−クラスの再利用が特徴)
クラスを派生させて,利用します。( 継承と呼ぶ−差分プログラミング)
クラスには,データメンバーとメソッド(cでの関数)がある。
システムが提供するクラスとして,パッケージがある。それをimportして利用する。
Webのブラウザで見れるJavaプログラムをアプレットと呼んでいるが, それも作れる。
印刷については、まだ、完全ではない。
現在、IE5.5ではアプレットの印刷ができないので、PrintScreen後に貼り付けて印刷するしかない。
Netscape Communicator4.75では、横幅がa4縦の幅しか印刷できない。
appletviewerでは、印刷できるが、用紙の左上の始点が指定できないので、周囲の6mmほどが印刷できない。
テキストの3.3節Javaグラフィックスの基礎と、6章 Javaグラフィックスを参照のこと。
p.59 色 setColor()
p.60 直線drawLine()
p.64 文字列の描画drawString()
p.65 フォントsetFont() などがある。
これらのメソッドの仕様(機能、引数など)は、JDKのオンラインマニュアルを参照のこと。
アプレットについては、Webページを参照のこと。
slsでのWindowsグラフィックス用正規分布曲線のプログラムを,javaに移植したものを紹介する。なお、Javaでは図の描画で対称な両側を描くようにしている。
アプレット プログラムの実行はここをクリックする。
[パスの設定] set PATH="%PATH%";"I:¥archives\JDK1.2\BIN"
今回は,Gnorm.java を用意している。コピー後, 各自の番号,名前に変更のこと。
>javac Gnorm.java
エラーの場合は,2)に戻り,修正して,再度,コンパイル。エラーがなくなるまで続ける。
この正規分布曲線プログラム(アプレット プログラム)の実行は,htmlファイル(アプレットプログラムのバイトコードGnorm.classを指定したもの)を用意する。
〔今回は,自分のフォルダーに (R:)\sekiya\図形処理\gnorm_ja.htmlをコピーしても良い。〕
そして、ブラウザでこのhtmlファイルを開くか、あるいはappletviewerでhtmlファイルを実行する。
>appletviewer [ file:/ドライブ名:\フォルダ名\]gnorm_ja.html
(あるいは,直接,gnorm_ja.htmlをダブルクリックして, ブラウザで見る。
2)に戻って、Javaのソースの変更−グラフの大きさ、色、文字の大きさなど−を試みる。
そして、Javacでコンパイルし、ブラウザで確かめる。
Javaのグラフィックスの機能やアプレットの使い方を試してみること。
(注)参照するJava言語の資料
・テキスト ・Webページの資料(最初に紹介したリンク集など) ・Jdkのdocs:jdk1.3¥ja\index.html) などがある。
CプログラムからJava Appletプログラムに移植するときの概要(実際に2者を比較のこと。) −#include に相当するパッケージのimport文とする。 −Appletクラスから派生し、main()をpaint()メソッドにする。 −関数名をクラスのインスタンス名.メソッド名に変える。(g.drawString()など) −ポインタ変数をクラスのメンバ変数に変える。 −グローバル変数を止めて、メソッドで返す(別クラスの場合)。 −数学関数の前にMath.を付ける −データの入力は、非GUIを使用するなど
Javaのプログラム例(Gnorm.java, gnorm_ja.html)を解析したこと、実験(例は前述)したことについて, 考察のこと。
( 解析する内容の例)
1 クラスの構造
2 そのクラスでどんなメソッド( 関数) を使っているか
3 C言語と比較して,Java の特徴は, どんなところにあるか?
4 アプレットをWebブラウザで起動する方法など
なお、アプレットの図については、前回までのイメージ(圧縮済み)の貼り付けでなく、アプレットの起動(Webページgnorm_ja.htmlへのリンク)とする。
Webページとして、今回分のhtmlファイルを作り、それに対するハイパーリンクを付けること。実行画面は、前述のとおり、イメージ貼り付けでなく、アプレット起動htmlファイルへのリンクすること。
注) Webページの作り方については、関谷のWebページの「個人ホームページの作成と更新」のページを参照のこと。