2007年03月23日

ProgrammingTips: グラフィックス

こんにちは、はまさんです。
私の記事は読んで貰えてるんでしょうか...、とちょっと心配になってる今日この頃です。
さてさて今回は...、プログラムでお絵描きしてみましょう。

グラフィックスは人気のある分野です。
...が、難易度かなり高め、開発環境を整えるだけで挫折してしまう人も大勢いるんじゃないでしょうか。

とりあえず、誰でも簡単に作れる Java Applet でお絵描きプログラミングに慣れましょう。
まぁ、普通に作っても面白くないので...、今回は JVM (Java Virtual Machine) で動く Scheme の実装である Kawa を使います。

まずは基本となる以下の四つの関数を定義します。
これらの関数はそれぞれ 生成/開始/終了/破棄 のタイミングで呼び出されます。

 (define (init) <void> (display "init") (newline))
 (define (start) <void> (display "start") (newline))
 (define (stop) <void> (display "stop") (newline))
 (define (destroy) <void> (display "destroy") (newline))

肝心の描画処理は paint という名前の関数の中に記述します。

 (define (paint (g :: <java.awt.Graphics>)) <void>
  (g:setColor (java.awt.Color:.black))
  (g:drawLine 0 0 400 300))

この例では画面左上から右下へ斜めに黒い線を描いてます。
四角形を描くには drawRect 円を描くには drawArc を使います。

Graphisc2D クラスを使うと半透明描画や座標系の回転拡大縮小などの高度な機能を使うことができます。

 (let ((g2d :: <java.awt.Graphics2D> g)) ... )

作ったプログラムをコンパイルしましょう。

 %JAVA_HOME%/bin/java -cp kawa-1.9.1.jar kawa.repl --applet -C MyApplet.scm

コンパイルされた class を HTML に組み込んで、できあがり。

 <applet code="MyApplet.class" archive="kawa-1.9.1.jar" width="400" height="300"></applet>

いかがでしょうか?
Java言語以外の言語でも JVM で動くプログラムを作れるのは面白いですよね。
最近では Ruby や Python も JVM で動くようです。

Java Applet は JVM の起動が遅いという弱点があるため、実際のところ、あまり利用されていません。しかし、長年の JVM の改良とPCスペックの向上で最新のパソコンならほとんど気にならないくらいの時間で起動するようになりました。そして、SUN によって Java のソースコードが GPL で公開されたことで、多くの開発者が Java の開発に参加できるようになりました。もう二、三年後には Java Applet も弱点が改良されて一般的に利用されるようになってるかもしれませんね。

Java はサーバサイドでは利用される事例が多いです。
Java Servlet についてもまたの機会にお話したいと思います。


otegaru2han at 09:26 │Comments(0)TrackBack(0) livedoorクリップへ追加このエントリーを含むはてなブックマークこの記事を含むECナビ人気ニュース
サイト制作の素 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

新着情報 機能 価格 ユーザー様の声 FAQ お問合せ スタッフ日記 開発ヒストリー 会社情報 おてがる社長日記
Copyright (C) Vois Inc. All rights reserved