任意の点を中心に、画像や動画を拡大・縮小する方法

以前、任意の点(マウスカーソルの位置)を中心に拡大・縮小する方法を goo blog に投稿したことがありますが、全くもって不十分な内容であったため、書き直すことにします。 また、これまではコード例によくJavaを使っていましたが、今回はLiveデモが見せやすいJavaScriptを使うことにします。 1. 画像左上の点を起点とした拡大・縮小 まずは、画像の左上の点 (0, 0) を起点とした単純…

続きを読む

LZW 圧縮アルゴリズム

gif を生成するクラスを自作するために、今回は LZW 圧縮アルゴリズムの勉強。 LZW アルゴリズムは辞書式圧縮であり、gif や tiff の圧縮に利用されています。 LZW アルゴリズムの概要 LZW 圧縮アルゴリズムは次の手順で実行されます。  手順0: 文字(数字)列に現れる文字の種類の数だけ、それぞれ辞書に登録しておく。  (文字列が 0~255 の範囲であれば、辞書は 256 ペー…

続きを読む

最小サイズのgif画像とアニメーションgif

Java で gif アニメーションを作りたいと思い、色々と調べる過程で 最小サイズの gif 画像や gif アニメーションを作ってみたので、そのメモ。 以前はJavaのクラスでgifを書き出していましたが、 今回は gif の仕様を調べて、バイナリ出力させています。 LZW 圧縮アルゴリズムのコードを書くのはもう少し時間がかかりそうですが、 ヘッダや大まかな構造は次のページを参考になんとなく理…

続きを読む

自由落下をオイラー法とルンゲクッタ法で解く

以前こちらで雑に考察した自由落下。 かれこれ3年以上前ということで感慨深いものがありましたが、 中途半端に終わっているので決着をつけようと思います。   1. 自由落下の運動方程式 2. 解析的手法 3. 解析的手法(跳ね返り) 4. オイラー法 5. オイラー法(跳ね返り) 6. ルンゲクッタ法 7. ルンゲクッタ法(跳ね返り) 8. C言語による実装(跳ね返り無し) 9. Javaに…

続きを読む