FAL 制作メモ

作ったものを見せびらかしたり、ついでにいろいろ解説したりします。今のところクリエイティブコーディングが中心です。作ったものの置き場所はこちら→ https://www.fal-works.com/

天才物理学者の気分を味わえる「Scientist Typer」を作ろうとした

のですが、あんまりおもしろくできませんでしたというメモ。

f:id:fal-works:20171211230341p:plain
Scientist Typer

概要

作成動機

私は学校でいちおう物理学をやったはずなのですが、どうしても授業についていけず、ほとんど何も分からないまま卒業してしまいました。
なぜあんなチンプンカンプンな状態で卒業できたのか。
日本の教育は一体どうなっているんだッッ!!

というわけで、数式を自由自在に操れる人に対して、なんとなく羨ましいという思いがあります。

しかし今の私は、未熟ながらもプログラミングという手段を手にしている。
プログラミング × 数式 で何か面白いものを作れたら溜飲を下げられるのではないか?
そういう安直な考えです。

できたもの

これです。
最初は真っ白で、キーボードをカチャカチャするとランダムで数式が出てくるんですが、なんというかそれだけで、うーんという感じです。

物理学の数式だけなので、タイトルは Physicist Typer にするべきかもしれませんが、Scientistの方が通りがよさそうだったので……。

パクリ元: Hacker Typer

もちろんこれはあの「Hacker Typer」のパクリです。

紹介記事:
dohack.jp

しかし、ハッカーがコードを書くときはいいとして、科学者が数式を書くときにキーボードをカチャカチャするのはあんまりイメージできない。
やるならやっぱり黒板かホワイトボードですよね。

TeXで数式を書く

ついでなので一応説明を書いておきましょう。

TeXとは

TeXというのは組版処理システムである。
TeX - Wikipedia

正式には TeXと書きます。
このEをちょっと下げる書き方からしても、組版へのこだわりが見て取れますね。
TeXの「X」の発音については、ドイツ語を習ったことがあると少しイメージしやすいんですが、まあWikipediaの方をご覧ください。

TeXを使うと数式をきれいに書けるので、理系の書籍や論文とかで使われています。
(はてな記法にも含まれていますね。さすがにウクレレ記法よりは使われているのではないか。)

例えば

1 \over \sqrt{2}

と書くと、1 \over \sqrt{2} になります。

Texで書いた数式をWeb上で表示できるJavaScriptライブラリ「MathJax」

論文みたいなやつを書こうとすると、ちょっと環境を整える必要がある。
しかし、ちょっとWebサイト上で手軽に表示したいという場合は、MathJaxというライブラリがあります。
www.mathjax.org

これを読み込むためのおまじない的なコードを自分のWebページに仕込んでおくと(本家サイトにある案内に従ってコピペするだけでOK)、そのページにTeX記法で書かれた数式を、いい感じに表示してくれるのです。
(注: TeX部分を $$ とか \[ ~ \] とか \( ~ \) とかで囲む必要があります)

実際のところ、このMathJaxの使い方を確認したかっただけというのが今回の本当の動機です。

今回のプログラムでの使い方

オンデマンドでTeXを変換・表示させる方法はよくわからなかった。
しかしプログラムを起動する時点でHTML要素(<P>タグとか)を作っておけば、あとはその中に含まれるTeX部分をMathJaxが勝手に変換してくれるようです。
なので、最初に大量に<P>タグを作っておいて、キーが押されるたびに出したり隠したりする、という割とおバカっぽい実装をしました。
今のところWebプログラミングはさっぱりなんだ。

物理学に関する情報源

Wikibooks

Wikipediaには姉妹プロジェクトがいくつかあって、Wikibooksもその一つです。
オープンな参考書や教科書をそろえるというのを目的にしているようです。
ネットにこういう情報があるのはありがたいですね。

今回のプログラムで表示する数式は、すべてWikibooksからお借りしました。
分野としては相対性理論とか量子力学とかそのあたりです。
(個々の数式の出典はソースコード内にベターっと書いてあります)

EMANの物理学

もはやプログラム関係ありませんが、せっかくなので物理学の勉強に使えそうな情報源をほかにも書いておこうかと思います。

この「EMANの物理学」は、テストの前日に一夜漬けするときにすごくお世話になりました。
専門家ではない個人の方が「中級レベルの教科書」を目指して知識をまとめているサイトです。
そういう成り立ちなので、単体の教科書としてはバランス良くないかもしれませんが、副読本代わりには良いのではないでしょうか。

その他書籍

こちらはガチな教科書リスト。
readingmonkey.blog45.fc2.com
readingmonkey.blog45.fc2.com

もちろん私は読めていないので、ここでこのリストをお勧めしようというわけではないです。
いつかちゃんと勉強しなおしたいなあ、そのときはこのへんを参考にチャレンジしてみようかな、という感じです。

ハリデイって聞いたことないなあと思っていたら案の定そこにツッコミが入っていたけど、どうも英語圏の方ではそれなりに歴史と定評のある教科書らしい。
参考: Fundamentals of Physics - Wikipedia


以上です。