Doom 的呐喊

Crying in the Day of Doom

误人子弟记

今天上完电动力学课,我去某指定地点答疑。进去时已经有三个小孩在了。其中两个在激烈讨论(这两个好像都比我大…),还有一个闷头做题。然后我自我介绍说我是 lab TA。过了一会儿,那个闷头做题的过来问一道很弱智的电磁学问题。我想我虽然不是电磁学的 TA,但是应付一下也是没问题的,于是就看题目。题目是这样的

两个电荷都是 -q 相距 10cm。求空间中总电场为零的点。

于是我就很认真的告诉那个小孩,设两电荷之间的一点,距其中一个电荷为 r。这点的总电场为两个电荷的电场之和

\displaystyle E = \frac{-q}{4\pi\epsilon_0}\left[\frac{1}{r^2} + \frac{1}{(10 - r)^2}\right]

E=0 也就是 r^2 + (10 - r)^2 = 0,鉴于这是两个平方之和,所以 r = 10 - r = 0,所以这道题出错了。

下午上数理的时候才反应过来,下课后想去找该小孩,未遂。

郑重告诫各位,刚上完电动量子广相或场论之后不宜思考。思考必死。

Phun

Phun 是一个 “2D physics sandbox”,是 Umeå 大学一个硕士生的毕业作品,使用了 C++ + boost + OpenGL + GLEW + SDL。这个东西最强悍的地方在于可以用鼠标画一个任意形状的物体参与计算。以下是官方的介绍视频:

以下两个是我做的~~ :-p

这个东西目前还未开源,不过作者说以后会开的~~

Computer Generated Hologram

CGH,计算机生成全息,就是可以把入射光的相位信息保存下来的东西。目前网上介绍这个东西的文章大多以论文(而且都是要钱的…)的形式出现,不利于我等民间人士访问。正好这几天由于学习上的需要写了一个二维 CGH 的程序。大家都知道光学的全息就是让物光通过一组透镜产生傅立叶变换,然后用一束参考光干涉来记录,所以在 CGH 里只要对物做傅立叶变换,然后记录变换结果就行了。具体步骤如下:

  1. 把物做成图片
  2. 对图片做 FFT,生成一组复数
  3. 把复数编码成图片并保存

要还原时只需要从生成的图片里导出频域信息,并做 FFT 逆变换。

我这个程序比较弱智,我自己写了一个读写 bmp 文件的类,只能操作 windows 格式的 24 bit bmp,编码用了类似 Lohmann 的,用开孔的位置表示相位,孔的深浅表示幅度。用法为

holo -i <inputfile> [-o <outputfile>] [-w <site width>]
    [-h <site height>] [-d <hole width>] [-r]

其中 site width 是每个孔能活动的宽度,site height 是孔的高度,hole width 是孔的宽度,site width - hole width 决定了相位的精度,而幅度的精度永远是 8 bit。