読書会(Filthy Rich Clients)第4回議事録
[ 戻る ]
Java読書会 「Filthy Rich Clients」を読む回(第4回)議事録
日時 : 2009/7/18(土) 10:00-17:00
場所 : 高津市民館 第5会議室
出席者:松永、石黒、高橋(徹)、壁谷、高橋(智)、遠藤、吉本、村山、今井(書記)
範囲:第7章 グラデーション マルチストップ線形グラデーション (p.191)
〜 第12章 アニメーションの基本 基本的な概念 (p.281)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
第7章 グラデーション
p.192
- LinearGradientPaintはJSE 6でしか使えないが、ソースをコピーすればJSE 5でも
使えるのか?
- SwingXの拡張部品を作っているプロジェクトから持ってきた部品が結構Javaに取り
こまれている。LinearGradientPaintがどうかはわからないが、そうであれば、もっ てくれば良い。
- Apache SVGツールキット(Batik)にLinearGradientPaintクラスがある。
(p.193下 ヒントより)
p.193
- GradientPaint()を使って、setPaint()を二度呼ぶ方法よりも、LinerGradientPaint()
の法が早く動くのは、内部的に単にsetPaint()を二回呼んでいるのではないということ
だろう。
p.194
- Macのウィンドウの左上ボタンは、図7-9の球体の効果を使って作っているのだろうか?
- Webページの箇条書きによく使用されている。
p.197
- 脚注*1 はどういう意味だろうか?
p.200
- ヒントに「Mac OS Xでは...4倍しか向上しません」とあるが、なぜ?
[宿題]試せる人は試してみよう
- Linuxでははやくなるのだろうか?
- OpenGLが使えれば試せるはず
- Xサーバの設定を、グラフィックチップにあったものにすれば早くなる?
第8章 画像処理
p.203
- GIMPって何て発音してます?
- (帰宅後調べました。http://e-words.jp/w/GIMP.html によると、「ギンプ」の
ようです。(今井))
p.206 l.4 誤植
パフォーマンスを低下を防ぐことができます。
→
パフォーマンスの低下を防ぐことができます。
p.212 上部RGBの計算式の最後の項 誤植(原書も同様、errataにも無い)
+ 255*(8/9)
→
= 255*(8/9)
p.212 l.下3 誤植
どの値が中心として使われるかが分かりにくくしています。
→
どの値が中心として使われるかを分かりにくくしています。
p.209〜
- Convolveってどういう意味?
- 巻き込む、畳み込む
p.213 コード
- sharpenの真ん中の値(5.0f)を4.0fにすると、隣接ピクセルと変化の少ないところは
暗く、多いところは明るくなり輪郭(エッジ)抽出した画像になる。
それに元画像の値を足している(1.0f増やして5.0fにしている)ので、元画像の輪郭が
強調されてシャープな画像になる。
p.216
- ペイントソフトにあるガンマ補正もこのようにテーブルを作って処理しているのだろ
うか?
- ShortLookupTableのコンストラクタは、第二引数がshort[]のものとshort[][]のものが
ある。
全バンド同じテーブルを使うときはshort[]を、バンドごとに異なったテーブルを使う
時は、short[][]を使う。
- APIを見ても分かりにくい。
p.224
- コードのforループ中、int a には、右シフトしていない値が入っているので、ループ
最後で a << 24 するのはおかしい。(原書も同じ)
- α値が0でたまたまうまく動いたのか?
- ダウンロードしたサンプルコードでは、mixColorという識別子が、メソッド名と
フィールド名で二重に使われているところなどを含め、ここに書かれているコード
とまったく違うコードになっている。
p.225
- 「注意」にある、「表引き用配列」は、原書では lookup arrays
第9章 ガラスペイン
p.233
- コード中に図9-3のバーの背景の描画がない。
- サンプルコードには入っている。
p.238
- コード最下行、右24シフトせずに0xFF000000とマスクするだけで良いのでは?
- 符号ビットがたっていた時に負値になってしまうのでまずい。
- もともとは正の値だし、「アルファチャネルが0より大きかったら...」なので、
マスクだけして「アルファチャネルが0ではなかったら...」でも良いのにね。
p.239 上部コード
- この条件はその前のifの条件と同じなので、単にreturn false;で良いのではないか。
前のコード例のコピペ、修正し忘れ?
(厳密には、inImageX >= 0 は、x >= imageX だから、'='が含まれるか含まれないかの
違いはありますね。(今井))
第10章 階層化ペイン
p.243
- これは、部品が(入力フィールドから)はみ出しているときに有効なテクニックだろう。
p.245
- add(Component, Object)と、add(Component, int)で異なる意味であれば、 あまり
良いメソッドネーミングではないね。
- 以前はこれで問題はなかった。オートボクシング機能により拙くなった。
p.246 l.下6 誤植
部品redはフレームの一番上にあり、
→
部品redはフレームの一番下にあり、
p.249 l.4 誤植
StackLayoutを用いて部品にコンテナを追加するときに、
→
StackLayoutを用いて部品をコンテナに追加するときに、
p.250
- LayoutManager2 というネーミング...
- LayoutManagerのサブインタフェースで、メソッドがいくつか追加されている。
- Eclipseにはこのパターンのネーミングが多い。4とか5もあったと思う。
p.251 ヒント l.下2 誤植
ガラスペインペインの代わりに
→
ガラスペインの代わりに
第11章 再描画マネージャ
p.262
- contentGraphicsフィールドの方はGraphicsにしておいて、メソッド内でGraphics2D型
変数g2に代入して使用しているのはなぜだろう。
- サンプルコードではフィールドの型もGraphics2Dになっている。
- g2に代入して使っているのは、単にコードを見やすくするため?
- g2.setComposite(), g2.setColor(), g2.setFont()は毎回必要だろうか。
- 毎回必要でないならif内でcontentBuffer.createGraphics()をしたときに
しておけば良いはず。
第III部 アニメーション
第12章 アニメーションの基本
p.272 l.5 誤植
中でつながり滑らか流れになります。
→
中でつながり滑らかな流れになります。
以上
次回p.281「時間計測(とプラットフォームの計時ユーティリティ)」から
[ 戻る ]