このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

JavaScriptのクラスもどきと、図形のアフィン変換ライブラリ

継承の話:

動物→哺乳類→犬 のような例え話は嫌い。「関係ない」というか誤解する事のほうが多いだろう。説明によく使っている例は図形。

図形(平面内に限る)は

  1. 線分
  2. 三角形
  3. 四角形

など。点は0次元の図形、線分は1次元の図形、n角形の周囲だけなら1次元、中身を考えると2次元。例えば、面積は2次元の図形でしか意味ない。

図形はさまざまな観点から分類と階層化ができる。どの分類法が正しいということはない。目的によって考えればよい。図形に対する操作、あるいは図形の自発的行動も色々ある。操作を受動的に設計するか/能動的(自発的)に設計するかも目的によって考えればよい。図形の分類と操作・動作を、いろいろと考えてみよう。

分類と操作・動作を、プログラムにするときに便利な発想がクラスと継承:

図形を扱うのだから、図形っぽい話もしよう。

アフィン変換は:

  1. 点を点に移す。
  2. 直線(線分)を直線に移す。
  3. 二本直線(線分)の交点を交点に移す。(交わりの関係を保存する)

アフィン変換は6個の数値が表現できるが、それはなぜだろう?

おまけ:知っていると便利なJavaScriptのこと: