JavaScriptのクラスもどきと、図形のアフィン変換ライブラリ
継承の話:
動物→哺乳類→犬 のような例え話は嫌い。「関係ない」というか誤解する事のほうが多いだろう。説明によく使っている例は図形。
- http://d.hatena.ne.jp/m-hiyama/archive?word=javascript+function+Point 「javascript+function+Point」で検索
図形(平面内に限る)は
- 点
- 線分
- 三角形
- 四角形
- 円
など。点は0次元の図形、線分は1次元の図形、n角形の周囲だけなら1次元、中身を考えると2次元。例えば、面積は2次元の図形でしか意味ない。
図形はさまざまな観点から分類と階層化ができる。どの分類法が正しいということはない。目的によって考えればよい。図形に対する操作、あるいは図形の自発的行動も色々ある。操作を受動的に設計するか/能動的(自発的)に設計するかも目的によって考えればよい。図形の分類と操作・動作を、いろいろと考えてみよう。
分類と操作・動作を、プログラムにするときに便利な発想がクラスと継承:
- http://d.hatena.ne.jp/m-hiyama/20051017/1129510043 プログラマのためのJavaScript (11):継承についてもう少し
- http://d.hatena.ne.jp/m-hiyama/20051018/1129605002 プログラマのためのJavaScript (号外):こんな継承はどう?
- http://d.hatena.ne.jp/m-hiyama/20091204/1259889523 JavaScriptのクラスもどきで、getter/setter を使う
図形を扱うのだから、図形っぽい話もしよう。
- http://d.hatena.ne.jp/m-hiyama/20090616/1245117533 アフィン変換なんて簡単だ
- http://d.hatena.ne.jp/m-hiyama/20090617/1245210412 アフィン幾何とアフィン変換の補足
- http://d.hatena.ne.jp/m-hiyama/20090804/1249357682 モナドのサンプルに、JavaScriptで簡易タートル・グラフィックスとか作ってみた
アフィン変換は:
- 点を点に移す。
- 直線(線分)を直線に移す。
- 二本直線(線分)の交点を交点に移す。(交わりの関係を保存する)
アフィン変換は6個の数値が表現できるが、それはなぜだろう?
おまけ:知っていると便利なJavaScriptのこと:
- http://d.hatena.ne.jp/m-hiyama/20121116/1353030826 JavaScriptの関数には、やたらに何でも突っ込める
- http://d.hatena.ne.jp/m-hiyama/20111206/1323158875 JavaScriptでnewが不要なコンストラクタ